// deno-lint-ignore-file
/* esm.sh - esbuild bundle(libphonenumber-js@1.9.20) deno production */
var je = {
  version: 4,
  country_calling_codes: {
    "1": [
      "US",
      "AG",
      "AI",
      "AS",
      "BB",
      "BM",
      "BS",
      "CA",
      "DM",
      "DO",
      "GD",
      "GU",
      "JM",
      "KN",
      "KY",
      "LC",
      "MP",
      "MS",
      "PR",
      "SX",
      "TC",
      "TT",
      "VC",
      "VG",
      "VI",
    ],
    "7": ["RU", "KZ"],
    "20": ["EG"],
    "27": ["ZA"],
    "30": ["GR"],
    "31": ["NL"],
    "32": ["BE"],
    "33": ["FR"],
    "34": ["ES"],
    "36": ["HU"],
    "39": ["IT", "VA"],
    "40": ["RO"],
    "41": ["CH"],
    "43": ["AT"],
    "44": ["GB", "GG", "IM", "JE"],
    "45": ["DK"],
    "46": ["SE"],
    "47": ["NO", "SJ"],
    "48": ["PL"],
    "49": ["DE"],
    "51": ["PE"],
    "52": ["MX"],
    "53": ["CU"],
    "54": ["AR"],
    "55": ["BR"],
    "56": ["CL"],
    "57": ["CO"],
    "58": ["VE"],
    "60": ["MY"],
    "61": ["AU", "CC", "CX"],
    "62": ["ID"],
    "63": ["PH"],
    "64": ["NZ"],
    "65": ["SG"],
    "66": ["TH"],
    "81": ["JP"],
    "82": ["KR"],
    "84": ["VN"],
    "86": ["CN"],
    "90": ["TR"],
    "91": ["IN"],
    "92": ["PK"],
    "93": ["AF"],
    "94": ["LK"],
    "95": ["MM"],
    "98": ["IR"],
    "211": ["SS"],
    "212": ["MA", "EH"],
    "213": ["DZ"],
    "216": ["TN"],
    "218": ["LY"],
    "220": ["GM"],
    "221": ["SN"],
    "222": ["MR"],
    "223": ["ML"],
    "224": ["GN"],
    "225": ["CI"],
    "226": ["BF"],
    "227": ["NE"],
    "228": ["TG"],
    "229": ["BJ"],
    "230": ["MU"],
    "231": ["LR"],
    "232": ["SL"],
    "233": ["GH"],
    "234": ["NG"],
    "235": ["TD"],
    "236": ["CF"],
    "237": ["CM"],
    "238": ["CV"],
    "239": ["ST"],
    "240": ["GQ"],
    "241": ["GA"],
    "242": ["CG"],
    "243": ["CD"],
    "244": ["AO"],
    "245": ["GW"],
    "246": ["IO"],
    "247": ["AC"],
    "248": ["SC"],
    "249": ["SD"],
    "250": ["RW"],
    "251": ["ET"],
    "252": ["SO"],
    "253": ["DJ"],
    "254": ["KE"],
    "255": ["TZ"],
    "256": ["UG"],
    "257": ["BI"],
    "258": ["MZ"],
    "260": ["ZM"],
    "261": ["MG"],
    "262": ["RE", "YT"],
    "263": ["ZW"],
    "264": ["NA"],
    "265": ["MW"],
    "266": ["LS"],
    "267": ["BW"],
    "268": ["SZ"],
    "269": ["KM"],
    "290": ["SH", "TA"],
    "291": ["ER"],
    "297": ["AW"],
    "298": ["FO"],
    "299": ["GL"],
    "350": ["GI"],
    "351": ["PT"],
    "352": ["LU"],
    "353": ["IE"],
    "354": ["IS"],
    "355": ["AL"],
    "356": ["MT"],
    "357": ["CY"],
    "358": ["FI", "AX"],
    "359": ["BG"],
    "370": ["LT"],
    "371": ["LV"],
    "372": ["EE"],
    "373": ["MD"],
    "374": ["AM"],
    "375": ["BY"],
    "376": ["AD"],
    "377": ["MC"],
    "378": ["SM"],
    "380": ["UA"],
    "381": ["RS"],
    "382": ["ME"],
    "383": ["XK"],
    "385": ["HR"],
    "386": ["SI"],
    "387": ["BA"],
    "389": ["MK"],
    "420": ["CZ"],
    "421": ["SK"],
    "423": ["LI"],
    "500": ["FK"],
    "501": ["BZ"],
    "502": ["GT"],
    "503": ["SV"],
    "504": ["HN"],
    "505": ["NI"],
    "506": ["CR"],
    "507": ["PA"],
    "508": ["PM"],
    "509": ["HT"],
    "590": ["GP", "BL", "MF"],
    "591": ["BO"],
    "592": ["GY"],
    "593": ["EC"],
    "594": ["GF"],
    "595": ["PY"],
    "596": ["MQ"],
    "597": ["SR"],
    "598": ["UY"],
    "599": ["CW", "BQ"],
    "670": ["TL"],
    "672": ["NF"],
    "673": ["BN"],
    "674": ["NR"],
    "675": ["PG"],
    "676": ["TO"],
    "677": ["SB"],
    "678": ["VU"],
    "679": ["FJ"],
    "680": ["PW"],
    "681": ["WF"],
    "682": ["CK"],
    "683": ["NU"],
    "685": ["WS"],
    "686": ["KI"],
    "687": ["NC"],
    "688": ["TV"],
    "689": ["PF"],
    "690": ["TK"],
    "691": ["FM"],
    "692": ["MH"],
    "850": ["KP"],
    "852": ["HK"],
    "853": ["MO"],
    "855": ["KH"],
    "856": ["LA"],
    "880": ["BD"],
    "886": ["TW"],
    "960": ["MV"],
    "961": ["LB"],
    "962": ["JO"],
    "963": ["SY"],
    "964": ["IQ"],
    "965": ["KW"],
    "966": ["SA"],
    "967": ["YE"],
    "968": ["OM"],
    "970": ["PS"],
    "971": ["AE"],
    "972": ["IL"],
    "973": ["BH"],
    "974": ["QA"],
    "975": ["BT"],
    "976": ["MN"],
    "977": ["NP"],
    "992": ["TJ"],
    "993": ["TM"],
    "994": ["AZ"],
    "995": ["GE"],
    "996": ["KG"],
    "998": ["UZ"],
  },
  countries: {
    AC: ["247", "00", "(?:[01589]\\d|[46])\\d{4}", [5, 6]],
    AD: ["376", "00", "(?:1|6\\d)\\d{7}|[135-9]\\d{5}", [6, 8, 9], [
      ["(\\d{3})(\\d{3})", "$1 $2", ["[135-9]"]],
      ["(\\d{4})(\\d{4})", "$1 $2", ["1"]],
      ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["6"]],
    ]],
    AE: [
      "971",
      "00",
      "(?:[4-7]\\d|9[0-689])\\d{7}|800\\d{2,9}|[2-4679]\\d{7}",
      [5, 6, 7, 8, 9, 10, 11, 12],
      [
        ["(\\d{3})(\\d{2,9})", "$1 $2", ["60|8"]],
        ["(\\d)(\\d{3})(\\d{4})", "$1 $2 $3", ["[236]|[479][2-8]"], "0$1"],
        ["(\\d{3})(\\d)(\\d{5})", "$1 $2 $3", ["[479]"]],
        ["(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["5"], "0$1"],
      ],
      "0",
    ],
    AF: ["93", "00", "[2-7]\\d{8}", [9], [[
      "(\\d{2})(\\d{3})(\\d{4})",
      "$1 $2 $3",
      ["[2-7]"],
      "0$1",
    ]], "0"],
    AG: [
      "1",
      "011",
      "(?:268|[58]\\d\\d|900)\\d{7}",
      [10],
      0,
      "1",
      0,
      "1|([457]\\d{6})$",
      "268$1",
      0,
      "268",
    ],
    AI: [
      "1",
      "011",
      "(?:264|[58]\\d\\d|900)\\d{7}",
      [10],
      0,
      "1",
      0,
      "1|([2457]\\d{6})$",
      "264$1",
      0,
      "264",
    ],
    AL: [
      "355",
      "00",
      "(?:700\\d\\d|900)\\d{3}|8\\d{5,7}|(?:[2-5]|6\\d)\\d{7}",
      [6, 7, 8, 9],
      [
        ["(\\d{3})(\\d{3,4})", "$1 $2", ["80|9"], "0$1"],
        ["(\\d)(\\d{3})(\\d{4})", "$1 $2 $3", ["4[2-6]"], "0$1"],
        ["(\\d{2})(\\d{3})(\\d{3})", "$1 $2 $3", ["[2358][2-5]|4"], "0$1"],
        ["(\\d{3})(\\d{5})", "$1 $2", ["[23578]"], "0$1"],
        ["(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["6"], "0$1"],
      ],
      "0",
    ],
    AM: ["374", "00", "(?:[1-489]\\d|55|60|77)\\d{6}", [8], [
      ["(\\d{3})(\\d{2})(\\d{3})", "$1 $2 $3", ["[89]0"], "0 $1"],
      ["(\\d{3})(\\d{5})", "$1 $2", ["2|3[12]"], "(0$1)"],
      ["(\\d{2})(\\d{6})", "$1 $2", ["1|47"], "(0$1)"],
      ["(\\d{2})(\\d{6})", "$1 $2", ["[3-9]"], "0$1"],
    ], "0"],
    AO: ["244", "00", "[29]\\d{8}", [9], [[
      "(\\d{3})(\\d{3})(\\d{3})",
      "$1 $2 $3",
      ["[29]"],
    ]]],
    AR: [
      "54",
      "00",
      "(?:11|[89]\\d\\d)\\d{8}|[2368]\\d{9}",
      [10, 11],
      [
        [
          "(\\d{4})(\\d{2})(\\d{4})",
          "$1 $2-$3",
          [
            "2(?:2[024-9]|3[0-59]|47|6[245]|9[02-8])|3(?:3[28]|4[03-9]|5[2-46-8]|7[1-578]|8[2-9])",
            "2(?:[23]02|6(?:[25]|4[6-8])|9(?:[02356]|4[02568]|72|8[23]))|3(?:3[28]|4(?:[04679]|3[5-8]|5[4-68]|8[2379])|5(?:[2467]|3[237]|8[2-5])|7[1-578]|8(?:[2469]|3[2578]|5[4-8]|7[36-8]|8[5-8]))|2(?:2[24-9]|3[1-59]|47)",
            "2(?:[23]02|6(?:[25]|4(?:64|[78]))|9(?:[02356]|4(?:[0268]|5[2-6])|72|8[23]))|3(?:3[28]|4(?:[04679]|3[78]|5(?:4[46]|8)|8[2379])|5(?:[2467]|3[237]|8[23])|7[1-578]|8(?:[2469]|3[278]|5[56][46]|86[3-6]))|2(?:2[24-9]|3[1-59]|47)|38(?:[58][78]|7[378])|3(?:4[35][56]|58[45]|8(?:[38]5|54|76))[4-6]",
            "2(?:[23]02|6(?:[25]|4(?:64|[78]))|9(?:[02356]|4(?:[0268]|5[2-6])|72|8[23]))|3(?:3[28]|4(?:[04679]|3(?:5(?:4[0-25689]|[56])|[78])|58|8[2379])|5(?:[2467]|3[237]|8(?:[23]|4(?:[45]|60)|5(?:4[0-39]|5|64)))|7[1-578]|8(?:[2469]|3[278]|54(?:4|5[13-7]|6[89])|86[3-6]))|2(?:2[24-9]|3[1-59]|47)|38(?:[58][78]|7[378])|3(?:454|85[56])[46]|3(?:4(?:36|5[56])|8(?:[38]5|76))[4-6]",
          ],
          "0$1",
          1,
        ],
        ["(\\d{2})(\\d{4})(\\d{4})", "$1 $2-$3", ["1"], "0$1", 1],
        ["(\\d{3})(\\d{3})(\\d{4})", "$1-$2-$3", ["[68]"], "0$1"],
        ["(\\d{3})(\\d{3})(\\d{4})", "$1 $2-$3", ["[23]"], "0$1", 1],
        [
          "(\\d)(\\d{4})(\\d{2})(\\d{4})",
          "$2 15-$3-$4",
          [
            "9(?:2[2-469]|3[3-578])",
            "9(?:2(?:2[024-9]|3[0-59]|47|6[245]|9[02-8])|3(?:3[28]|4[03-9]|5[2-46-8]|7[1-578]|8[2-9]))",
            "9(?:2(?:[23]02|6(?:[25]|4[6-8])|9(?:[02356]|4[02568]|72|8[23]))|3(?:3[28]|4(?:[04679]|3[5-8]|5[4-68]|8[2379])|5(?:[2467]|3[237]|8[2-5])|7[1-578]|8(?:[2469]|3[2578]|5[4-8]|7[36-8]|8[5-8])))|92(?:2[24-9]|3[1-59]|47)",
            "9(?:2(?:[23]02|6(?:[25]|4(?:64|[78]))|9(?:[02356]|4(?:[0268]|5[2-6])|72|8[23]))|3(?:3[28]|4(?:[04679]|3[78]|5(?:4[46]|8)|8[2379])|5(?:[2467]|3[237]|8[23])|7[1-578]|8(?:[2469]|3[278]|5(?:[56][46]|[78])|7[378]|8(?:6[3-6]|[78]))))|92(?:2[24-9]|3[1-59]|47)|93(?:4[35][56]|58[45]|8(?:[38]5|54|76))[4-6]",
            "9(?:2(?:[23]02|6(?:[25]|4(?:64|[78]))|9(?:[02356]|4(?:[0268]|5[2-6])|72|8[23]))|3(?:3[28]|4(?:[04679]|3(?:5(?:4[0-25689]|[56])|[78])|5(?:4[46]|8)|8[2379])|5(?:[2467]|3[237]|8(?:[23]|4(?:[45]|60)|5(?:4[0-39]|5|64)))|7[1-578]|8(?:[2469]|3[278]|5(?:4(?:4|5[13-7]|6[89])|[56][46]|[78])|7[378]|8(?:6[3-6]|[78]))))|92(?:2[24-9]|3[1-59]|47)|93(?:4(?:36|5[56])|8(?:[38]5|76))[4-6]",
          ],
          "0$1",
          0,
          "$1 $2 $3-$4",
        ],
        [
          "(\\d)(\\d{2})(\\d{4})(\\d{4})",
          "$2 15-$3-$4",
          ["91"],
          "0$1",
          0,
          "$1 $2 $3-$4",
        ],
        ["(\\d{3})(\\d{3})(\\d{5})", "$1-$2-$3", ["8"], "0$1"],
        [
          "(\\d)(\\d{3})(\\d{3})(\\d{4})",
          "$2 15-$3-$4",
          ["9"],
          "0$1",
          0,
          "$1 $2 $3-$4",
        ],
      ],
      "0",
      0,
      "0?(?:(11|2(?:2(?:02?|[13]|2[13-79]|4[1-6]|5[2457]|6[124-8]|7[1-4]|8[13-6]|9[1267])|3(?:02?|1[467]|2[03-6]|3[13-8]|[49][2-6]|5[2-8]|[67])|4(?:7[3-578]|9)|6(?:[0136]|2[24-6]|4[6-8]?|5[15-8])|80|9(?:0[1-3]|[19]|2\\d|3[1-6]|4[02568]?|5[2-4]|6[2-46]|72?|8[23]?))|3(?:3(?:2[79]|6|8[2578])|4(?:0[0-24-9]|[12]|3[5-8]?|4[24-7]|5[4-68]?|6[02-9]|7[126]|8[2379]?|9[1-36-8])|5(?:1|2[1245]|3[237]?|4[1-46-9]|6[2-4]|7[1-6]|8[2-5]?)|6[24]|7(?:[069]|1[1568]|2[15]|3[145]|4[13]|5[14-8]|7[2-57]|8[126])|8(?:[01]|2[15-7]|3[2578]?|4[13-6]|5[4-8]?|6[1-357-9]|7[36-8]?|8[5-8]?|9[124])))15)?",
      "9$1",
    ],
    AS: [
      "1",
      "011",
      "(?:[58]\\d\\d|684|900)\\d{7}",
      [10],
      0,
      "1",
      0,
      "1|([267]\\d{6})$",
      "684$1",
      0,
      "684",
    ],
    AT: [
      "43",
      "00",
      "1\\d{3,12}|2\\d{6,12}|43(?:(?:0\\d|5[02-9])\\d{3,9}|2\\d{4,5}|[3467]\\d{4}|8\\d{4,6}|9\\d{4,7})|5\\d{4,12}|8\\d{7,12}|9\\d{8,12}|(?:[367]\\d|4[0-24-9])\\d{4,11}",
      [4, 5, 6, 7, 8, 9, 10, 11, 12, 13],
      [
        ["(\\d)(\\d{3,12})", "$1 $2", ["1(?:11|[2-9])"], "0$1"],
        ["(\\d{3})(\\d{2})", "$1 $2", ["517"], "0$1"],
        ["(\\d{2})(\\d{3,5})", "$1 $2", ["5[079]"], "0$1"],
        ["(\\d{3})(\\d{3,10})", "$1 $2", [
          "(?:31|4)6|51|6(?:5[0-3579]|[6-9])|7(?:20|32|8)|[89]",
        ], "0$1"],
        ["(\\d{4})(\\d{3,9})", "$1 $2", ["[2-467]|5[2-6]"], "0$1"],
        ["(\\d{2})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["5"], "0$1"],
        ["(\\d{2})(\\d{4})(\\d{4,7})", "$1 $2 $3", ["5"], "0$1"],
      ],
      "0",
    ],
    AU: [
      "61",
      "001[14-689]|14(?:1[14]|34|4[17]|[56]6|7[47]|88)0011",
      "1(?:[0-79]\\d{7,8}|8[0-24-9]\\d{7})|[2-478]\\d{8}|1\\d{4,7}",
      [5, 6, 7, 8, 9, 10],
      [
        ["(\\d{2})(\\d{3,4})", "$1 $2", ["16"], "0$1"],
        ["(\\d{2})(\\d{3})(\\d{2,4})", "$1 $2 $3", ["16"], "0$1"],
        ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["14|4"], "0$1"],
        ["(\\d)(\\d{4})(\\d{4})", "$1 $2 $3", ["[2378]"], "(0$1)"],
        ["(\\d{4})(\\d{3})(\\d{3})", "$1 $2 $3", ["1(?:30|[89])"]],
      ],
      "0",
      0,
      "0|(183[12])",
      0,
      0,
      0,
      [
        [
          "(?:(?:2(?:[0-26-9]\\d|3[0-8]|4[02-9]|5[0135-9])|3(?:[0-3589]\\d|4[0-578]|6[1-9]|7[0-35-9])|7(?:[013-57-9]\\d|2[0-8]))\\d{3}|8(?:51(?:0(?:0[03-9]|[12479]\\d|3[2-9]|5[0-8]|6[1-9]|8[0-7])|1(?:[0235689]\\d|1[0-69]|4[0-589]|7[0-47-9])|2(?:0[0-79]|[18][13579]|2[14-9]|3[0-46-9]|[4-6]\\d|7[89]|9[0-4]))|(?:6[0-8]|[78]\\d)\\d{3}|9(?:[02-9]\\d{3}|1(?:(?:[0-58]\\d|6[0135-9])\\d|7(?:0[0-24-9]|[1-9]\\d)|9(?:[0-46-9]\\d|5[0-79])))))\\d{3}",
          [9],
        ],
        [
          "4(?:83[0-38]|93[0-4])\\d{5}|4(?:[0-3]\\d|4[047-9]|5[0-25-9]|6[06-9]|7[02-9]|8[0-24-9]|9[0-27-9])\\d{6}",
          [9],
        ],
        ["180(?:0\\d{3}|2)\\d{3}", [7, 10]],
        ["190[0-26]\\d{6}", [10]],
        0,
        0,
        0,
        ["163\\d{2,6}", [5, 6, 7, 8, 9]],
        ["14(?:5(?:1[0458]|[23][458])|71\\d)\\d{4}", [9]],
        ["13(?:00\\d{3}|45[0-4])\\d{3}|13\\d{4}", [6, 8, 10]],
      ],
      "0011",
    ],
    AW: ["297", "00", "(?:[25-79]\\d\\d|800)\\d{4}", [7], [[
      "(\\d{3})(\\d{4})",
      "$1 $2",
      ["[25-9]"],
    ]]],
    AX: [
      "358",
      "00|99(?:[01469]|5(?:[14]1|3[23]|5[59]|77|88|9[09]))",
      "2\\d{4,9}|35\\d{4,5}|(?:60\\d\\d|800)\\d{4,6}|7\\d{5,11}|(?:[14]\\d|3[0-46-9]|50)\\d{4,8}",
      [5, 6, 7, 8, 9, 10, 11, 12],
      0,
      "0",
      0,
      0,
      0,
      0,
      "18",
      0,
      "00",
    ],
    AZ: ["994", "00", "365\\d{6}|(?:[124579]\\d|60|88)\\d{7}", [9], [[
      "(\\d{3})(\\d{2})(\\d{2})(\\d{2})",
      "$1 $2 $3 $4",
      ["90"],
      "0$1",
    ], ["(\\d{2})(\\d{3})(\\d{2})(\\d{2})", "$1 $2 $3 $4", [
      "1[28]|2|365|46",
      "1[28]|2|365|46",
      "1[28]|2|365(?:[0-46-9]|5[0-35-9])|46",
    ], "(0$1)"], [
      "(\\d{2})(\\d{3})(\\d{2})(\\d{2})",
      "$1 $2 $3 $4",
      ["[13-9]"],
      "0$1",
    ]], "0"],
    BA: ["387", "00", "6\\d{8}|(?:[35689]\\d|49|70)\\d{6}", [8, 9], [
      ["(\\d{2})(\\d{3})(\\d{3})", "$1 $2 $3", ["6[1-3]|[7-9]"], "0$1"],
      ["(\\d{2})(\\d{3})(\\d{3})", "$1 $2-$3", ["[3-5]|6[56]"], "0$1"],
      ["(\\d{2})(\\d{2})(\\d{2})(\\d{3})", "$1 $2 $3 $4", ["6"], "0$1"],
    ], "0"],
    BB: [
      "1",
      "011",
      "(?:246|[58]\\d\\d|900)\\d{7}",
      [10],
      0,
      "1",
      0,
      "1|([2-9]\\d{6})$",
      "246$1",
      0,
      "246",
    ],
    BD: [
      "880",
      "00",
      "1\\d{9}|2\\d{7,8}|88\\d{4,6}|(?:8[0-79]|9\\d)\\d{4,8}|(?:[346]\\d|[57])\\d{5,8}",
      [6, 7, 8, 9, 10],
      [
        ["(\\d{2})(\\d{4,6})", "$1-$2", ["31[5-8]|[459]1"], "0$1"],
        ["(\\d{3})(\\d{3,7})", "$1-$2", [
          "3(?:[67]|8[013-9])|4(?:6[168]|7|[89][18])|5(?:6[128]|9)|6(?:28|4[14]|5)|7[2-589]|8(?:0[014-9]|[12])|9[358]|(?:3[2-5]|4[235]|5[2-578]|6[0389]|76|8[3-7]|9[24])1|(?:44|66)[01346-9]",
        ], "0$1"],
        ["(\\d{4})(\\d{3,6})", "$1-$2", ["[13-9]"], "0$1"],
        ["(\\d)(\\d{7,8})", "$1-$2", ["2"], "0$1"],
      ],
      "0",
    ],
    BE: ["32", "00", "4\\d{8}|[1-9]\\d{7}", [8, 9], [
      ["(\\d{3})(\\d{2})(\\d{3})", "$1 $2 $3", ["(?:80|9)0"], "0$1"],
      ["(\\d)(\\d{3})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[239]|4[23]"], "0$1"],
      ["(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[15-8]"], "0$1"],
      ["(\\d{3})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["4"], "0$1"],
    ], "0"],
    BF: ["226", "00", "[025-7]\\d{7}", [8], [[
      "(\\d{2})(\\d{2})(\\d{2})(\\d{2})",
      "$1 $2 $3 $4",
      ["[025-7]"],
    ]]],
    BG: ["359", "00", "[2-7]\\d{6,7}|[89]\\d{6,8}|2\\d{5}", [6, 7, 8, 9], [
      ["(\\d)(\\d)(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["2"], "0$1"],
      ["(\\d{3})(\\d{4})", "$1 $2", ["43[1-6]|70[1-9]"], "0$1"],
      ["(\\d)(\\d{3})(\\d{3,4})", "$1 $2 $3", ["2"], "0$1"],
      ["(\\d{2})(\\d{3})(\\d{2,3})", "$1 $2 $3", [
        "[356]|4[124-7]|7[1-9]|8[1-6]|9[1-7]",
      ], "0$1"],
      ["(\\d{3})(\\d{2})(\\d{3})", "$1 $2 $3", ["(?:70|8)0"], "0$1"],
      ["(\\d{3})(\\d{3})(\\d{2})", "$1 $2 $3", ["43[1-7]|7"], "0$1"],
      ["(\\d{2})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["[48]|9[08]"], "0$1"],
      ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["9"], "0$1"],
    ], "0"],
    BH: ["973", "00", "[136-9]\\d{7}", [8], [["(\\d{4})(\\d{4})", "$1 $2", [
      "[13679]|8[047]",
    ]]]],
    BI: ["257", "00", "(?:[267]\\d|31)\\d{6}", [8], [[
      "(\\d{2})(\\d{2})(\\d{2})(\\d{2})",
      "$1 $2 $3 $4",
      ["[2367]"],
    ]]],
    BJ: ["229", "00", "[25689]\\d{7}", [8], [[
      "(\\d{2})(\\d{2})(\\d{2})(\\d{2})",
      "$1 $2 $3 $4",
      ["[25689]"],
    ]]],
    BL: [
      "590",
      "00",
      "(?:590|(?:69|80)\\d|976)\\d{6}",
      [9],
      0,
      "0",
      0,
      0,
      0,
      0,
      0,
      [
        ["590(?:2[7-9]|5[12]|87)\\d{4}"],
        ["69(?:0\\d\\d|1(?:2[2-9]|3[0-5]))\\d{4}"],
        ["80[0-5]\\d{6}"],
        0,
        0,
        0,
        0,
        0,
        ["976[01]\\d{5}"],
      ],
    ],
    BM: [
      "1",
      "011",
      "(?:441|[58]\\d\\d|900)\\d{7}",
      [10],
      0,
      "1",
      0,
      "1|([2-8]\\d{6})$",
      "441$1",
      0,
      "441",
    ],
    BN: ["673", "00", "[2-578]\\d{6}", [7], [["(\\d{3})(\\d{4})", "$1 $2", [
      "[2-578]",
    ]]]],
    BO: [
      "591",
      "00(?:1\\d)?",
      "(?:[2-467]\\d\\d|8001)\\d{5}",
      [8, 9],
      [
        ["(\\d)(\\d{7})", "$1 $2", ["[23]|4[46]"]],
        ["(\\d{8})", "$1", ["[67]"]],
        ["(\\d{3})(\\d{2})(\\d{4})", "$1 $2 $3", ["8"]],
      ],
      "0",
      0,
      "0(1\\d)?",
    ],
    BQ: ["599", "00", "(?:[34]1|7\\d)\\d{5}", [7], 0, 0, 0, 0, 0, 0, "[347]"],
    BR: [
      "55",
      "00(?:1[245]|2[1-35]|31|4[13]|[56]5|99)",
      "(?:[1-46-9]\\d\\d|5(?:[0-46-9]\\d|5[0-24679]))\\d{8}|[1-9]\\d{9}|[3589]\\d{8}|[34]\\d{7}",
      [8, 9, 10, 11],
      [
        ["(\\d{4})(\\d{4})", "$1-$2", [
          "300|4(?:0[02]|37)",
          "4(?:02|37)0|[34]00",
        ]],
        ["(\\d{3})(\\d{2,3})(\\d{4})", "$1 $2 $3", ["(?:[358]|90)0"], "0$1"],
        ["(\\d{2})(\\d{4})(\\d{4})", "$1 $2-$3", [
          "(?:[14689][1-9]|2[12478]|3[1-578]|5[13-5]|7[13-579])[2-57]",
        ], "($1)"],
        [
          "(\\d{2})(\\d{5})(\\d{4})",
          "$1 $2-$3",
          ["[16][1-9]|[2-57-9]"],
          "($1)",
        ],
      ],
      "0",
      0,
      "(?:0|90)(?:(1[245]|2[1-35]|31|4[13]|[56]5|99)(\\d{10,11}))?",
      "$2",
    ],
    BS: [
      "1",
      "011",
      "(?:242|[58]\\d\\d|900)\\d{7}",
      [10],
      0,
      "1",
      0,
      "1|([3-8]\\d{6})$",
      "242$1",
      0,
      "242",
    ],
    BT: ["975", "00", "[17]\\d{7}|[2-8]\\d{6}", [7, 8], [[
      "(\\d)(\\d{3})(\\d{3})",
      "$1 $2 $3",
      ["[2-68]|7[246]"],
    ], ["(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["1[67]|7"]]]],
    BW: ["267", "00", "(?:0800|(?:[37]|800)\\d)\\d{6}|(?:[2-6]\\d|90)\\d{5}", [
      7,
      8,
      10,
    ], [
      ["(\\d{2})(\\d{5})", "$1 $2", ["90"]],
      ["(\\d{3})(\\d{4})", "$1 $2", ["[24-6]|3[15-79]"]],
      ["(\\d{2})(\\d{3})(\\d{3})", "$1 $2 $3", ["[37]"]],
      ["(\\d{4})(\\d{3})(\\d{3})", "$1 $2 $3", ["0"]],
      ["(\\d{3})(\\d{4})(\\d{3})", "$1 $2 $3", ["8"]],
    ]],
    BY: [
      "375",
      "810",
      "(?:[12]\\d|33|44|902)\\d{7}|8(?:0[0-79]\\d{5,7}|[1-7]\\d{9})|8(?:1[0-489]|[5-79]\\d)\\d{7}|8[1-79]\\d{6,7}|8[0-79]\\d{5}|8\\d{5}",
      [6, 7, 8, 9, 10, 11],
      [["(\\d{3})(\\d{3})", "$1 $2", ["800"], "8 $1"], [
        "(\\d{3})(\\d{2})(\\d{2,4})",
        "$1 $2 $3",
        ["800"],
        "8 $1",
      ], ["(\\d{4})(\\d{2})(\\d{3})", "$1 $2-$3", [
        "1(?:5[169]|6[3-5]|7[179])|2(?:1[35]|2[34]|3[3-5])",
        "1(?:5[169]|6(?:3[1-3]|4|5[125])|7(?:1[3-9]|7[0-24-6]|9[2-7]))|2(?:1[35]|2[34]|3[3-5])",
      ], "8 0$1"], ["(\\d{3})(\\d{2})(\\d{2})(\\d{2})", "$1 $2-$3-$4", [
        "1(?:[56]|7[467])|2[1-3]",
      ], "8 0$1"], ["(\\d{2})(\\d{3})(\\d{2})(\\d{2})", "$1 $2-$3-$4", [
        "[1-4]",
      ], "8 0$1"], [
        "(\\d{3})(\\d{3,4})(\\d{4})",
        "$1 $2 $3",
        ["[89]"],
        "8 $1",
      ]],
      "8",
      0,
      "0|80?",
      0,
      0,
      0,
      0,
      "8~10",
    ],
    BZ: ["501", "00", "(?:0800\\d|[2-8])\\d{6}", [7, 11], [[
      "(\\d{3})(\\d{4})",
      "$1-$2",
      ["[2-8]"],
    ], ["(\\d)(\\d{3})(\\d{4})(\\d{3})", "$1-$2-$3-$4", ["0"]]]],
    CA: ["1", "011", "(?:[2-8]\\d|90)\\d{8}", [10], 0, "1", 0, 0, 0, 0, 0, [
      ["(?:2(?:04|[23]6|[48]9|50)|3(?:06|43|6[578])|4(?:03|1[68]|3[178]|50|74)|5(?:06|1[49]|48|79|8[17])|6(?:04|13|39|47|72)|7(?:0[59]|78|8[02])|8(?:[06]7|19|25|73)|90[25])[2-9]\\d{6}"],
      [""],
      ["8(?:00|33|44|55|66|77|88)[2-9]\\d{6}"],
      ["900[2-9]\\d{6}"],
      ["52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|(?:5(?:00|2[12]|33|44|66|77|88)|622)[2-9]\\d{6}"],
      0,
      0,
      0,
      ["600[2-9]\\d{6}"],
    ]],
    CC: [
      "61",
      "001[14-689]|14(?:1[14]|34|4[17]|[56]6|7[47]|88)0011",
      "1(?:[0-79]\\d|8[0-24-9])\\d{7}|[148]\\d{8}|1\\d{5,7}",
      [6, 7, 8, 9, 10],
      0,
      "0",
      0,
      "0|([59]\\d{7})$",
      "8$1",
      0,
      0,
      [
        [
          "8(?:51(?:0(?:02|31|60|89)|1(?:18|76)|223)|91(?:0(?:1[0-2]|29)|1(?:[28]2|50|79)|2(?:10|64)|3(?:[06]8|22)|4[29]8|62\\d|70[23]|959))\\d{3}",
          [9],
        ],
        [
          "4(?:83[0-38]|93[0-4])\\d{5}|4(?:[0-3]\\d|4[047-9]|5[0-25-9]|6[06-9]|7[02-9]|8[0-24-9]|9[0-27-9])\\d{6}",
          [9],
        ],
        ["180(?:0\\d{3}|2)\\d{3}", [7, 10]],
        ["190[0-26]\\d{6}", [10]],
        0,
        0,
        0,
        0,
        ["14(?:5(?:1[0458]|[23][458])|71\\d)\\d{4}", [9]],
        ["13(?:00\\d{3}|45[0-4])\\d{3}|13\\d{4}", [6, 8, 10]],
      ],
      "0011",
    ],
    CD: ["243", "00", "[189]\\d{8}|[1-68]\\d{6}", [7, 9], [
      ["(\\d{2})(\\d{2})(\\d{3})", "$1 $2 $3", ["88"], "0$1"],
      ["(\\d{2})(\\d{5})", "$1 $2", ["[1-6]"], "0$1"],
      ["(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["1"], "0$1"],
      ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["[89]"], "0$1"],
    ], "0"],
    CF: ["236", "00", "(?:[27]\\d{3}|8776)\\d{4}", [8], [[
      "(\\d{2})(\\d{2})(\\d{2})(\\d{2})",
      "$1 $2 $3 $4",
      ["[278]"],
    ]]],
    CG: ["242", "00", "222\\d{6}|(?:0\\d|80)\\d{7}", [9], [
      ["(\\d{3})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["801"]],
      ["(\\d)(\\d{4})(\\d{4})", "$1 $2 $3", ["8"]],
      ["(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["[02]"]],
    ]],
    CH: ["41", "00", "8\\d{11}|[2-9]\\d{8}", [9], [[
      "(\\d{3})(\\d{3})(\\d{3})",
      "$1 $2 $3",
      ["8[047]|90"],
      "0$1",
    ], [
      "(\\d{2})(\\d{3})(\\d{2})(\\d{2})",
      "$1 $2 $3 $4",
      ["[2-79]|81"],
      "0$1",
    ], [
      "(\\d{3})(\\d{2})(\\d{3})(\\d{2})(\\d{2})",
      "$1 $2 $3 $4 $5",
      ["8"],
      "0$1",
    ]], "0"],
    CI: ["225", "00", "[02]\\d{9}", [10], [[
      "(\\d{2})(\\d{2})(\\d)(\\d{5})",
      "$1 $2 $3 $4",
      ["2"],
    ], ["(\\d{2})(\\d{2})(\\d{2})(\\d{4})", "$1 $2 $3 $4", ["0"]]]],
    CK: ["682", "00", "[2-578]\\d{4}", [5], [["(\\d{2})(\\d{3})", "$1 $2", [
      "[2-578]",
    ]]]],
    CL: [
      "56",
      "(?:0|1(?:1[0-69]|2[02-5]|5[13-58]|69|7[0167]|8[018]))0",
      "12300\\d{6}|6\\d{9,10}|[2-9]\\d{8}",
      [9, 10, 11],
      [
        ["(\\d{5})(\\d{4})", "$1 $2", ["219", "2196"], "($1)"],
        ["(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["44"]],
        ["(\\d)(\\d{4})(\\d{4})", "$1 $2 $3", ["2[1-3]"], "($1)"],
        ["(\\d)(\\d{4})(\\d{4})", "$1 $2 $3", ["9[2-9]"]],
        ["(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", [
          "3[2-5]|[47]|5[1-3578]|6[13-57]|8(?:0[1-9]|[1-9])",
        ], "($1)"],
        ["(\\d{3})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["60|8"]],
        ["(\\d{4})(\\d{3})(\\d{4})", "$1 $2 $3", ["1"]],
        ["(\\d{3})(\\d{3})(\\d{2})(\\d{3})", "$1 $2 $3 $4", ["60"]],
      ],
    ],
    CM: ["237", "00", "[26]\\d{8}|88\\d{6,7}", [8, 9], [[
      "(\\d{2})(\\d{2})(\\d{2})(\\d{2})",
      "$1 $2 $3 $4",
      ["88"],
    ], ["(\\d)(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4 $5", [
      "[26]|88",
    ]]]],
    CN: [
      "86",
      "00|1(?:[12]\\d|79)\\d\\d00",
      "1[127]\\d{8,9}|2\\d{9}(?:\\d{2})?|[12]\\d{6,7}|86\\d{6}|(?:1[03-689]\\d|6)\\d{7,9}|(?:[3-579]\\d|8[0-57-9])\\d{6,9}",
      [7, 8, 9, 10, 11, 12],
      [
        ["(\\d{2})(\\d{5,6})", "$1 $2", [
          "(?:10|2[0-57-9])[19]",
          "(?:10|2[0-57-9])(?:10|9[56])",
          "(?:10|2[0-57-9])(?:100|9[56])",
        ], "0$1"],
        ["(\\d{3})(\\d{5,6})", "$1 $2", [
          "3(?:[157]|35|49|9[1-68])|4(?:[17]|2[179]|6[47-9]|8[23])|5(?:[1357]|2[37]|4[36]|6[1-46]|80)|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]|4[13]|5[1-5])|(?:4[35]|59|85)[1-9]",
          "(?:3(?:[157]\\d|35|49|9[1-68])|4(?:[17]\\d|2[179]|[35][1-9]|6[47-9]|8[23])|5(?:[1357]\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\d|5[1-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]\\d|4[13]|5[1-5]))[19]",
          "85[23](?:10|95)|(?:3(?:[157]\\d|35|49|9[1-68])|4(?:[17]\\d|2[179]|[35][1-9]|6[47-9]|8[23])|5(?:[1357]\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\d|5[14-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]\\d|4[13]|5[1-5]))(?:10|9[56])",
          "85[23](?:100|95)|(?:3(?:[157]\\d|35|49|9[1-68])|4(?:[17]\\d|2[179]|[35][1-9]|6[47-9]|8[23])|5(?:[1357]\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\d|5[14-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]\\d|4[13]|5[1-5]))(?:100|9[56])",
        ], "0$1"],
        ["(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3", ["(?:4|80)0"]],
        [
          "(\\d{2})(\\d{4})(\\d{4})",
          "$1 $2 $3",
          [
            "10|2(?:[02-57-9]|1[1-9])",
            "10|2(?:[02-57-9]|1[1-9])",
            "10[0-79]|2(?:[02-57-9]|1[1-79])|(?:10|21)8(?:0[1-9]|[1-9])",
          ],
          "0$1",
          1,
        ],
        [
          "(\\d{3})(\\d{3})(\\d{4})",
          "$1 $2 $3",
          ["3(?:[3-59]|7[02-68])|4(?:[26-8]|3[3-9]|5[2-9])|5(?:3[03-9]|[468]|7[028]|9[2-46-9])|6|7(?:[0-247]|3[04-9]|5[0-4689]|6[2368])|8(?:[1-358]|9[1-7])|9(?:[013479]|5[1-5])|(?:[34]1|55|79|87)[02-9]"],
          "0$1",
          1,
        ],
        ["(\\d{3})(\\d{7,8})", "$1 $2", ["9"]],
        ["(\\d{4})(\\d{3})(\\d{4})", "$1 $2 $3", ["80"], "0$1", 1],
        ["(\\d{3})(\\d{4})(\\d{4})", "$1 $2 $3", ["[3-578]"], "0$1", 1],
        ["(\\d{3})(\\d{4})(\\d{4})", "$1 $2 $3", ["1[3-9]"]],
        ["(\\d{2})(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3 $4", ["[12]"], "0$1", 1],
      ],
      "0",
      0,
      "0|(1(?:[12]\\d|79)\\d\\d)",
      0,
      0,
      0,
      0,
      "00",
    ],
    CO: [
      "57",
      "00(?:4(?:[14]4|56)|[579])",
      "(?:1\\d|3)\\d{9}|[124-8]\\d{7}",
      [8, 10, 11],
      [["(\\d)(\\d{7})", "$1 $2", ["[14][2-9]|[25-8]"], "($1)"], [
        "(\\d{3})(\\d{7})",
        "$1 $2",
        ["3"],
      ], ["(\\d)(\\d{3})(\\d{7})", "$1-$2-$3", ["1"], "0$1", 0, "$1 $2 $3"]],
      "0",
      0,
      "0([3579]|4(?:[14]4|56))?",
    ],
    CR: [
      "506",
      "00",
      "(?:8\\d|90)\\d{8}|(?:[24-8]\\d{3}|3005)\\d{4}",
      [8, 10],
      [["(\\d{4})(\\d{4})", "$1 $2", ["[2-7]|8[3-9]"]], [
        "(\\d{3})(\\d{3})(\\d{4})",
        "$1-$2-$3",
        ["[89]"],
      ]],
      0,
      0,
      "(19(?:0[0-2468]|1[09]|20|66|77|99))",
    ],
    CU: ["53", "119", "[27]\\d{6,7}|[34]\\d{5,7}|(?:5|8\\d\\d)\\d{7}", [
      6,
      7,
      8,
      10,
    ], [
      ["(\\d{2})(\\d{4,6})", "$1 $2", ["2[1-4]|[34]"], "(0$1)"],
      ["(\\d)(\\d{6,7})", "$1 $2", ["7"], "(0$1)"],
      ["(\\d)(\\d{7})", "$1 $2", ["5"], "0$1"],
      ["(\\d{3})(\\d{7})", "$1 $2", ["8"], "0$1"],
    ], "0"],
    CV: ["238", "0", "(?:[2-59]\\d\\d|800)\\d{4}", [7], [[
      "(\\d{3})(\\d{2})(\\d{2})",
      "$1 $2 $3",
      ["[2-589]"],
    ]]],
    CW: [
      "599",
      "00",
      "(?:[34]1|60|(?:7|9\\d)\\d)\\d{5}",
      [7, 8],
      [["(\\d{3})(\\d{4})", "$1 $2", ["[3467]"]], [
        "(\\d)(\\d{3})(\\d{4})",
        "$1 $2 $3",
        ["9[4-8]"],
      ]],
      0,
      0,
      0,
      0,
      0,
      "[69]",
    ],
    CX: [
      "61",
      "001[14-689]|14(?:1[14]|34|4[17]|[56]6|7[47]|88)0011",
      "1(?:[0-79]\\d|8[0-24-9])\\d{7}|[148]\\d{8}|1\\d{5,7}",
      [6, 7, 8, 9, 10],
      0,
      "0",
      0,
      "0|([59]\\d{7})$",
      "8$1",
      0,
      0,
      [
        [
          "8(?:51(?:0(?:01|30|59|88)|1(?:17|46|75)|2(?:22|35))|91(?:00[6-9]|1(?:[28]1|49|78)|2(?:09|63)|3(?:12|26|75)|4(?:56|97)|64\\d|7(?:0[01]|1[0-2])|958))\\d{3}",
          [9],
        ],
        [
          "4(?:83[0-38]|93[0-4])\\d{5}|4(?:[0-3]\\d|4[047-9]|5[0-25-9]|6[06-9]|7[02-9]|8[0-24-9]|9[0-27-9])\\d{6}",
          [9],
        ],
        ["180(?:0\\d{3}|2)\\d{3}", [7, 10]],
        ["190[0-26]\\d{6}", [10]],
        0,
        0,
        0,
        0,
        ["14(?:5(?:1[0458]|[23][458])|71\\d)\\d{4}", [9]],
        ["13(?:00\\d{3}|45[0-4])\\d{3}|13\\d{4}", [6, 8, 10]],
      ],
      "0011",
    ],
    CY: ["357", "00", "(?:[279]\\d|[58]0)\\d{6}", [8], [[
      "(\\d{2})(\\d{6})",
      "$1 $2",
      ["[257-9]"],
    ]]],
    CZ: ["420", "00", "(?:[2-578]\\d|60)\\d{7}|9\\d{8,11}", [9], [
      ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["[2-8]|9[015-7]"]],
      ["(\\d{2})(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3 $4", ["9"]],
      ["(\\d{3})(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3 $4", ["9"]],
    ]],
    DE: [
      "49",
      "00",
      "[2579]\\d{5,14}|49(?:[34]0|69|8\\d)\\d\\d?|49(?:37|49|60|7[089]|9\\d)\\d{1,3}|49(?:[12]\\d|3[2-689]|7[1-7])\\d{1,8}|(?:1|[368]\\d|4[0-8])\\d{3,13}|49(?:[05]\\d|31|[46][1-8])\\d{1,9}",
      [4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15],
      [
        ["(\\d{2})(\\d{3,13})", "$1 $2", ["3[02]|40|[68]9"], "0$1"],
        ["(\\d{3})(\\d{3,12})", "$1 $2", [
          "2(?:0[1-389]|1[124]|2[18]|3[14])|3(?:[35-9][15]|4[015])|906|(?:2[4-9]|4[2-9]|[579][1-9]|[68][1-8])1",
          "2(?:0[1-389]|12[0-8])|3(?:[35-9][15]|4[015])|906|2(?:[13][14]|2[18])|(?:2[4-9]|4[2-9]|[579][1-9]|[68][1-8])1",
        ], "0$1"],
        ["(\\d{4})(\\d{2,11})", "$1 $2", [
          "[24-6]|3(?:[3569][02-46-9]|4[2-4679]|7[2-467]|8[2-46-8])|70[2-8]|8(?:0[2-9]|[1-8])|90[7-9]|[79][1-9]",
          "[24-6]|3(?:3(?:0[1-467]|2[127-9]|3[124578]|7[1257-9]|8[1256]|9[145])|4(?:2[135]|4[13578]|9[1346])|5(?:0[14]|2[1-3589]|6[1-4]|7[13468]|8[13568])|6(?:2[1-489]|3[124-6]|6[13]|7[12579]|8[1-356]|9[135])|7(?:2[1-7]|4[145]|6[1-5]|7[1-4])|8(?:21|3[1468]|6|7[1467]|8[136])|9(?:0[12479]|2[1358]|4[134679]|6[1-9]|7[136]|8[147]|9[1468]))|70[2-8]|8(?:0[2-9]|[1-8])|90[7-9]|[79][1-9]|3[68]4[1347]|3(?:47|60)[1356]|3(?:3[46]|46|5[49])[1246]|3[4579]3[1357]",
        ], "0$1"],
        ["(\\d{3})(\\d{4})", "$1 $2", ["138"], "0$1"],
        ["(\\d{5})(\\d{2,10})", "$1 $2", ["3"], "0$1"],
        ["(\\d{3})(\\d{5,11})", "$1 $2", ["181"], "0$1"],
        ["(\\d{3})(\\d)(\\d{4,10})", "$1 $2 $3", ["1(?:3|80)|9"], "0$1"],
        ["(\\d{3})(\\d{7,8})", "$1 $2", ["1[67]"], "0$1"],
        ["(\\d{3})(\\d{7,12})", "$1 $2", ["8"], "0$1"],
        ["(\\d{5})(\\d{6})", "$1 $2", ["185", "1850", "18500"], "0$1"],
        ["(\\d{3})(\\d{4})(\\d{4})", "$1 $2 $3", ["7"], "0$1"],
        ["(\\d{4})(\\d{7})", "$1 $2", ["18[68]"], "0$1"],
        ["(\\d{5})(\\d{6})", "$1 $2", ["15[0568]"], "0$1"],
        ["(\\d{4})(\\d{7})", "$1 $2", ["15[1279]"], "0$1"],
        ["(\\d{3})(\\d{8})", "$1 $2", ["18"], "0$1"],
        ["(\\d{3})(\\d{2})(\\d{7,8})", "$1 $2 $3", ["1(?:6[023]|7)"], "0$1"],
        ["(\\d{4})(\\d{2})(\\d{7})", "$1 $2 $3", ["15[279]"], "0$1"],
        ["(\\d{3})(\\d{2})(\\d{8})", "$1 $2 $3", ["15"], "0$1"],
      ],
      "0",
    ],
    DJ: ["253", "00", "(?:2\\d|77)\\d{6}", [8], [[
      "(\\d{2})(\\d{2})(\\d{2})(\\d{2})",
      "$1 $2 $3 $4",
      ["[27]"],
    ]]],
    DK: ["45", "00", "[2-9]\\d{7}", [8], [[
      "(\\d{2})(\\d{2})(\\d{2})(\\d{2})",
      "$1 $2 $3 $4",
      ["[2-9]"],
    ]]],
    DM: [
      "1",
      "011",
      "(?:[58]\\d\\d|767|900)\\d{7}",
      [10],
      0,
      "1",
      0,
      "1|([2-7]\\d{6})$",
      "767$1",
      0,
      "767",
    ],
    DO: [
      "1",
      "011",
      "(?:[58]\\d\\d|900)\\d{7}",
      [10],
      0,
      "1",
      0,
      0,
      0,
      0,
      "8001|8[024]9",
    ],
    DZ: ["213", "00", "(?:[1-4]|[5-79]\\d|80)\\d{7}", [8, 9], [
      ["(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[1-4]"], "0$1"],
      ["(\\d{2})(\\d{3})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["9"], "0$1"],
      ["(\\d{3})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[5-8]"], "0$1"],
    ], "0"],
    EC: ["593", "00", "1\\d{9,10}|(?:[2-7]|9\\d)\\d{7}", [8, 9, 10, 11], [
      ["(\\d)(\\d{3})(\\d{4})", "$1 $2-$3", ["[2-7]"], "(0$1)", 0, "$1-$2-$3"],
      ["(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["9"], "0$1"],
      ["(\\d{4})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["1"]],
    ], "0"],
    EE: [
      "372",
      "00",
      "8\\d{9}|[4578]\\d{7}|(?:[3-8]\\d|90)\\d{5}",
      [7, 8, 10],
      [
        ["(\\d{3})(\\d{4})", "$1 $2", [
          "[369]|4[3-8]|5(?:[0-2]|5[0-478]|6[45])|7[1-9]|88",
          "[369]|4[3-8]|5(?:[02]|1(?:[0-8]|95)|5[0-478]|6(?:4[0-4]|5[1-589]))|7[1-9]|88",
        ]],
        ["(\\d{4})(\\d{3,4})", "$1 $2", [
          "[45]|8(?:00|[1-49])",
          "[45]|8(?:00[1-9]|[1-49])",
        ]],
        ["(\\d{2})(\\d{2})(\\d{4})", "$1 $2 $3", ["7"]],
        ["(\\d{4})(\\d{3})(\\d{3})", "$1 $2 $3", ["8"]],
      ],
    ],
    EG: ["20", "00", "[189]\\d{8,9}|[24-6]\\d{8}|[135]\\d{7}", [8, 9, 10], [
      ["(\\d)(\\d{7,8})", "$1 $2", ["[23]"], "0$1"],
      ["(\\d{2})(\\d{6,7})", "$1 $2", ["1[35]|[4-6]|8[2468]|9[235-7]"], "0$1"],
      ["(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3", ["[189]"], "0$1"],
    ], "0"],
    EH: ["212", "00", "[5-8]\\d{8}", [9], 0, "0", 0, 0, 0, 0, "528[89]"],
    ER: ["291", "00", "[178]\\d{6}", [7], [[
      "(\\d)(\\d{3})(\\d{3})",
      "$1 $2 $3",
      ["[178]"],
      "0$1",
    ]], "0"],
    ES: ["34", "00", "[5-9]\\d{8}", [9], [[
      "(\\d{3})(\\d{3})(\\d{3})",
      "$1 $2 $3",
      ["[89]00"],
    ], ["(\\d{3})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[5-9]"]]]],
    ET: ["251", "00", "(?:11|[2-59]\\d)\\d{7}", [9], [[
      "(\\d{2})(\\d{3})(\\d{4})",
      "$1 $2 $3",
      ["[1-59]"],
      "0$1",
    ]], "0"],
    FI: [
      "358",
      "00|99(?:[01469]|5(?:[14]1|3[23]|5[59]|77|88|9[09]))",
      "[1-35689]\\d{4}|7\\d{10,11}|(?:[124-7]\\d|3[0-46-9])\\d{8}|[1-9]\\d{5,8}",
      [5, 6, 7, 8, 9, 10, 11, 12],
      [
        [
          "(\\d)(\\d{4,9})",
          "$1 $2",
          ["[2568][1-8]|3(?:0[1-9]|[1-9])|9"],
          "0$1",
        ],
        ["(\\d{3})(\\d{3,7})", "$1 $2", ["[12]00|[368]|70[07-9]"], "0$1"],
        ["(\\d{2})(\\d{4,8})", "$1 $2", ["[1245]|7[135]"], "0$1"],
        ["(\\d{2})(\\d{6,10})", "$1 $2", ["7"], "0$1"],
      ],
      "0",
      0,
      0,
      0,
      0,
      "1[03-79]|[2-9]",
      0,
      "00",
    ],
    FJ: [
      "679",
      "0(?:0|52)",
      "45\\d{5}|(?:0800\\d|[235-9])\\d{6}",
      [7, 11],
      [["(\\d{3})(\\d{4})", "$1 $2", ["[235-9]|45"]], [
        "(\\d{4})(\\d{3})(\\d{4})",
        "$1 $2 $3",
        ["0"],
      ]],
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      "00",
    ],
    FK: ["500", "00", "[2-7]\\d{4}", [5]],
    FM: ["691", "00", "(?:[39]\\d\\d|820)\\d{4}", [7], [[
      "(\\d{3})(\\d{4})",
      "$1 $2",
      ["[389]"],
    ]]],
    FO: [
      "298",
      "00",
      "[2-9]\\d{5}",
      [6],
      [["(\\d{6})", "$1", ["[2-9]"]]],
      0,
      0,
      "(10(?:01|[12]0|88))",
    ],
    FR: ["33", "00", "[1-9]\\d{8}", [9], [[
      "(\\d{3})(\\d{2})(\\d{2})(\\d{2})",
      "$1 $2 $3 $4",
      ["8"],
      "0 $1",
    ], [
      "(\\d)(\\d{2})(\\d{2})(\\d{2})(\\d{2})",
      "$1 $2 $3 $4 $5",
      ["[1-79]"],
      "0$1",
    ]], "0"],
    GA: [
      "241",
      "00",
      "(?:[067]\\d|11)\\d{6}|[2-7]\\d{6}",
      [7, 8],
      [["(\\d)(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[2-7]"], "0$1"], [
        "(\\d{2})(\\d{2})(\\d{2})(\\d{2})",
        "$1 $2 $3 $4",
        ["11|[67]"],
        "0$1",
      ], ["(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["0"]]],
      0,
      0,
      "0(11\\d{6}|6[256]\\d{6}|7[47]\\d{6})",
      "$1",
    ],
    GB: [
      "44",
      "00",
      "[1-357-9]\\d{9}|[18]\\d{8}|8\\d{6}",
      [7, 9, 10],
      [
        ["(\\d{3})(\\d{4})", "$1 $2", [
          "800",
          "8001",
          "80011",
          "800111",
          "8001111",
        ], "0$1"],
        ["(\\d{3})(\\d{2})(\\d{2})", "$1 $2 $3", [
          "845",
          "8454",
          "84546",
          "845464",
        ], "0$1"],
        ["(\\d{3})(\\d{6})", "$1 $2", ["800"], "0$1"],
        ["(\\d{5})(\\d{4,5})", "$1 $2", [
          "1(?:38|5[23]|69|76|94)",
          "1(?:(?:38|69)7|5(?:24|39)|768|946)",
          "1(?:3873|5(?:242|39[4-6])|(?:697|768)[347]|9467)",
        ], "0$1"],
        ["(\\d{4})(\\d{5,6})", "$1 $2", ["1(?:[2-69][02-9]|[78])"], "0$1"],
        ["(\\d{2})(\\d{4})(\\d{4})", "$1 $2 $3", [
          "[25]|7(?:0|6[02-9])",
          "[25]|7(?:0|6(?:[03-9]|2[356]))",
        ], "0$1"],
        ["(\\d{4})(\\d{6})", "$1 $2", ["7"], "0$1"],
        ["(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3", ["[1389]"], "0$1"],
      ],
      "0",
      0,
      0,
      0,
      0,
      0,
      [
        [
          "(?:1(?:1(?:3(?:[0-58]\\d\\d|73[03])|4(?:[0-5]\\d\\d|69[7-9]|70[059])|(?:5[0-26-9]|6[0-4]|[78][0-49])\\d\\d)|2(?:(?:0[024-9]|2[3-9]|3[3-79]|4[1-689]|[58][02-9]|6[0-47-9]|7[013-9]|9\\d)\\d\\d|1(?:[0-7]\\d\\d|8(?:[02]\\d|1[278])))|(?:3(?:0\\d|1[0-8]|[25][02-9]|3[02-579]|[468][0-46-9]|7[1-35-79]|9[2-578])|4(?:0[03-9]|[137]\\d|[28][02-57-9]|4[02-69]|5[0-8]|[69][0-79])|5(?:0[1-35-9]|[16]\\d|2[024-9]|3[015689]|4[02-9]|5[03-9]|7[0-35-9]|8[0-468]|9[0-57-9])|6(?:0[034689]|1\\d|2[0-35689]|[38][013-9]|4[1-467]|5[0-69]|6[13-9]|7[0-8]|9[0-24578])|7(?:0[0246-9]|2\\d|3[0236-8]|4[03-9]|5[0-46-9]|6[013-9]|7[0-35-9]|8[024-9]|9[02-9])|8(?:0[35-9]|2[1-57-9]|3[02-578]|4[0-578]|5[124-9]|6[2-69]|7\\d|8[02-9]|9[02569])|9(?:0[02-589]|[18]\\d|2[02-689]|3[1-57-9]|4[2-9]|5[0-579]|6[2-47-9]|7[0-24578]|9[2-57]))\\d\\d)|2(?:0[013478]|3[0189]|4[017]|8[0-46-9]|9[0-2])\\d{3})\\d{4}|1(?:2(?:0(?:46[1-4]|87[2-9])|545[1-79]|76(?:2\\d|3[1-8]|6[1-6])|9(?:7(?:2[0-4]|3[2-5])|8(?:2[2-8]|7[0-47-9]|8[3-5])))|3(?:6(?:38[2-5]|47[23])|8(?:47[04-9]|64[0157-9]))|4(?:044[1-7]|20(?:2[23]|8\\d)|6(?:0(?:30|5[2-57]|6[1-8]|7[2-8])|140)|8(?:052|87[1-3]))|5(?:2(?:4(?:3[2-79]|6\\d)|76\\d)|6(?:26[06-9]|686))|6(?:06(?:4\\d|7[4-79])|295[5-7]|35[34]\\d|47(?:24|61)|59(?:5[08]|6[67]|74)|9(?:55[0-4]|77[23]))|7(?:26(?:6[13-9]|7[0-7])|(?:442|688)\\d|50(?:2[0-3]|[3-68]2|76))|8(?:27[56]\\d|37(?:5[2-5]|8[239])|843[2-58])|9(?:0(?:0(?:6[1-8]|85)|52\\d)|3583|4(?:66[1-8]|9(?:2[01]|81))|63(?:23|3[1-4])|9561))\\d{3}",
          [9, 10],
        ],
        [
          "7(?:457[0-57-9]|700[01]|911[028])\\d{5}|7(?:[1-3]\\d\\d|4(?:[0-46-9]\\d|5[0-689])|5(?:0[0-8]|[13-9]\\d|2[0-35-9])|7(?:0[1-9]|[1-7]\\d|8[02-9]|9[0-689])|8(?:[014-9]\\d|[23][0-8])|9(?:[024-9]\\d|1[02-9]|3[0-689]))\\d{6}",
          [10],
        ],
        ["80[08]\\d{7}|800\\d{6}|8001111"],
        ["(?:8(?:4[2-5]|7[0-3])|9(?:[01]\\d|8[2-49]))\\d{7}|845464\\d", [
          7,
          10,
        ]],
        ["70\\d{8}", [10]],
        0,
        ["(?:3[0347]|55)\\d{8}", [10]],
        [
          "76(?:464|652)\\d{5}|76(?:0[0-2]|2[356]|34|4[01347]|5[49]|6[0-369]|77|81|9[139])\\d{6}",
          [10],
        ],
        ["56\\d{8}", [10]],
      ],
      0,
      " x",
    ],
    GD: [
      "1",
      "011",
      "(?:473|[58]\\d\\d|900)\\d{7}",
      [10],
      0,
      "1",
      0,
      "1|([2-9]\\d{6})$",
      "473$1",
      0,
      "473",
    ],
    GE: ["995", "00", "(?:[3-57]\\d\\d|800)\\d{6}", [9], [
      ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["70"], "0$1"],
      ["(\\d{2})(\\d{3})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["32"], "0$1"],
      ["(\\d{3})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[57]"]],
      ["(\\d{3})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[348]"], "0$1"],
    ], "0"],
    GF: ["594", "00", "(?:[56]94|80\\d|976)\\d{6}", [9], [[
      "(\\d{3})(\\d{2})(\\d{2})(\\d{2})",
      "$1 $2 $3 $4",
      ["[569]"],
      "0$1",
    ], ["(\\d{3})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["8"], "0$1"]], "0"],
    GG: [
      "44",
      "00",
      "(?:1481|[357-9]\\d{3})\\d{6}|8\\d{6}(?:\\d{2})?",
      [7, 9, 10],
      0,
      "0",
      0,
      "0|([25-9]\\d{5})$",
      "1481$1",
      0,
      0,
      [
        ["1481[25-9]\\d{5}", [10]],
        ["7(?:(?:781|839)\\d|911[17])\\d{5}", [10]],
        ["80[08]\\d{7}|800\\d{6}|8001111"],
        ["(?:8(?:4[2-5]|7[0-3])|9(?:[01]\\d|8[0-3]))\\d{7}|845464\\d", [7, 10]],
        ["70\\d{8}", [10]],
        0,
        ["(?:3[0347]|55)\\d{8}", [10]],
        [
          "76(?:464|652)\\d{5}|76(?:0[0-2]|2[356]|34|4[01347]|5[49]|6[0-369]|77|81|9[139])\\d{6}",
          [10],
        ],
        ["56\\d{8}", [10]],
      ],
    ],
    GH: ["233", "00", "(?:[235]\\d{3}|800)\\d{5}", [8, 9], [[
      "(\\d{3})(\\d{5})",
      "$1 $2",
      ["8"],
      "0$1",
    ], ["(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["[235]"], "0$1"]], "0"],
    GI: ["350", "00", "(?:[25]\\d\\d|606)\\d{5}", [8], [[
      "(\\d{3})(\\d{5})",
      "$1 $2",
      ["2"],
    ]]],
    GL: ["299", "00", "(?:19|[2-689]\\d)\\d{4}", [6], [[
      "(\\d{2})(\\d{2})(\\d{2})",
      "$1 $2 $3",
      ["19|[2-689]"],
    ]]],
    GM: ["220", "00", "[2-9]\\d{6}", [7], [["(\\d{3})(\\d{4})", "$1 $2", [
      "[2-9]",
    ]]]],
    GN: ["224", "00", "722\\d{6}|(?:3|6\\d)\\d{7}", [8, 9], [[
      "(\\d{2})(\\d{2})(\\d{2})(\\d{2})",
      "$1 $2 $3 $4",
      ["3"],
    ], ["(\\d{3})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[67]"]]]],
    GP: [
      "590",
      "00",
      "(?:590|(?:69|80)\\d|976)\\d{6}",
      [9],
      [["(\\d{3})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[569]"], "0$1"], [
        "(\\d{3})(\\d{2})(\\d{2})(\\d{2})",
        "$1 $2 $3 $4",
        ["8"],
        "0$1",
      ]],
      "0",
      0,
      0,
      0,
      0,
      0,
      [
        ["590(?:0[1-68]|1[0-2]|2[0-68]|3[1289]|4[0-24-9]|5[3-579]|6[0189]|7[08]|8[0-689]|9\\d)\\d{4}"],
        ["69(?:0\\d\\d|1(?:2[2-9]|3[0-5]))\\d{4}"],
        ["80[0-5]\\d{6}"],
        0,
        0,
        0,
        0,
        0,
        ["976[01]\\d{5}"],
      ],
    ],
    GQ: ["240", "00", "222\\d{6}|(?:3\\d|55|[89]0)\\d{7}", [9], [[
      "(\\d{3})(\\d{3})(\\d{3})",
      "$1 $2 $3",
      ["[235]"],
    ], ["(\\d{3})(\\d{6})", "$1 $2", ["[89]"]]]],
    GR: [
      "30",
      "00",
      "5005000\\d{3}|8\\d{9,10}|(?:[269]\\d|70)\\d{8}",
      [10, 11],
      [
        ["(\\d{2})(\\d{4})(\\d{4})", "$1 $2 $3", ["21|7"]],
        ["(\\d{4})(\\d{6})", "$1 $2", [
          "2(?:2|3[2-57-9]|4[2-469]|5[2-59]|6[2-9]|7[2-69]|8[2-49])|5",
        ]],
        ["(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3", ["[2689]"]],
        ["(\\d{3})(\\d{3})(\\d{5})", "$1 $2 $3", ["8"]],
      ],
    ],
    GT: ["502", "00", "(?:1\\d{3}|[2-7])\\d{7}", [8, 11], [[
      "(\\d{4})(\\d{4})",
      "$1 $2",
      ["[2-7]"],
    ], ["(\\d{4})(\\d{3})(\\d{4})", "$1 $2 $3", ["1"]]]],
    GU: [
      "1",
      "011",
      "(?:[58]\\d\\d|671|900)\\d{7}",
      [10],
      0,
      "1",
      0,
      "1|([3-9]\\d{6})$",
      "671$1",
      0,
      "671",
    ],
    GW: ["245", "00", "[49]\\d{8}|4\\d{6}", [7, 9], [[
      "(\\d{3})(\\d{4})",
      "$1 $2",
      ["40"],
    ], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["[49]"]]]],
    GY: ["592", "001", "(?:862\\d|9008)\\d{3}|(?:[2-46]\\d|77)\\d{5}", [7], [[
      "(\\d{3})(\\d{4})",
      "$1 $2",
      ["[2-46-9]"],
    ]]],
    HK: [
      "852",
      "00(?:30|5[09]|[126-9]?)",
      "8[0-46-9]\\d{6,7}|9\\d{4}(?:\\d(?:\\d(?:\\d{4})?)?)?|(?:[235-79]\\d|46)\\d{6}",
      [5, 6, 7, 8, 9, 11],
      [
        ["(\\d{3})(\\d{2,5})", "$1 $2", ["900", "9003"]],
        ["(\\d{4})(\\d{4})", "$1 $2", ["[2-7]|8[1-4]|9(?:0[1-9]|[1-8])"]],
        ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["8"]],
        ["(\\d{3})(\\d{2})(\\d{3})(\\d{3})", "$1 $2 $3 $4", ["9"]],
      ],
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      "00",
    ],
    HN: ["504", "00", "8\\d{10}|[237-9]\\d{7}", [8, 11], [[
      "(\\d{4})(\\d{4})",
      "$1-$2",
      ["[237-9]"],
    ]]],
    HR: [
      "385",
      "00",
      "(?:[24-69]\\d|3[0-79])\\d{7}|80\\d{5,7}|[1-79]\\d{7}|6\\d{5,6}",
      [6, 7, 8, 9],
      [
        ["(\\d{2})(\\d{2})(\\d{2,3})", "$1 $2 $3", ["6[01]"], "0$1"],
        ["(\\d{3})(\\d{2})(\\d{2,3})", "$1 $2 $3", ["8"], "0$1"],
        ["(\\d)(\\d{4})(\\d{3})", "$1 $2 $3", ["1"], "0$1"],
        ["(\\d{2})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["[67]"], "0$1"],
        ["(\\d{2})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["9"], "0$1"],
        ["(\\d{2})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["[2-5]"], "0$1"],
        ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["8"], "0$1"],
      ],
      "0",
    ],
    HT: ["509", "00", "[2-489]\\d{7}", [8], [[
      "(\\d{2})(\\d{2})(\\d{4})",
      "$1 $2 $3",
      ["[2-489]"],
    ]]],
    HU: ["36", "00", "[235-7]\\d{8}|[1-9]\\d{7}", [8, 9], [[
      "(\\d)(\\d{3})(\\d{4})",
      "$1 $2 $3",
      ["1"],
      "(06 $1)",
    ], ["(\\d{2})(\\d{3})(\\d{3})", "$1 $2 $3", [
      "[27][2-9]|3[2-7]|4[24-9]|5[2-79]|6|8[2-57-9]|9[2-69]",
    ], "(06 $1)"], [
      "(\\d{2})(\\d{3})(\\d{3,4})",
      "$1 $2 $3",
      ["[2-9]"],
      "06 $1",
    ]], "06"],
    ID: [
      "62",
      "00[89]",
      "(?:(?:00[1-9]|8\\d)\\d{4}|[1-36])\\d{6}|00\\d{10}|[1-9]\\d{8,10}|[2-9]\\d{7}",
      [7, 8, 9, 10, 11, 12, 13],
      [
        ["(\\d)(\\d{3})(\\d{3})", "$1 $2 $3", ["15"]],
        ["(\\d{2})(\\d{5,9})", "$1 $2", ["2[124]|[36]1"], "(0$1)"],
        ["(\\d{3})(\\d{5,7})", "$1 $2", ["800"], "0$1"],
        ["(\\d{3})(\\d{5,8})", "$1 $2", ["[2-79]"], "(0$1)"],
        ["(\\d{3})(\\d{3,4})(\\d{3})", "$1-$2-$3", ["8[1-35-9]"], "0$1"],
        ["(\\d{3})(\\d{6,8})", "$1 $2", ["1"], "0$1"],
        ["(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3", ["804"], "0$1"],
        ["(\\d{3})(\\d)(\\d{3})(\\d{3})", "$1 $2 $3 $4", ["80"], "0$1"],
        ["(\\d{3})(\\d{4})(\\d{4,5})", "$1-$2-$3", ["8"], "0$1"],
      ],
      "0",
    ],
    IE: ["353", "00", "(?:1\\d|[2569])\\d{6,8}|4\\d{6,9}|7\\d{8}|8\\d{8,9}", [
      7,
      8,
      9,
      10,
    ], [
      [
        "(\\d{2})(\\d{5})",
        "$1 $2",
        ["2[24-9]|47|58|6[237-9]|9[35-9]"],
        "(0$1)",
      ],
      ["(\\d{3})(\\d{5})", "$1 $2", ["[45]0"], "(0$1)"],
      ["(\\d)(\\d{3,4})(\\d{4})", "$1 $2 $3", ["1"], "(0$1)"],
      [
        "(\\d{2})(\\d{3})(\\d{3,4})",
        "$1 $2 $3",
        ["[2569]|4[1-69]|7[14]"],
        "(0$1)",
      ],
      ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["70"], "0$1"],
      ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["81"], "(0$1)"],
      ["(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["[78]"], "0$1"],
      ["(\\d{4})(\\d{3})(\\d{3})", "$1 $2 $3", ["1"]],
      ["(\\d{2})(\\d{4})(\\d{4})", "$1 $2 $3", ["4"], "(0$1)"],
      ["(\\d{2})(\\d)(\\d{3})(\\d{4})", "$1 $2 $3 $4", ["8"], "0$1"],
    ], "0"],
    IL: [
      "972",
      "0(?:0|1[2-9])",
      "1\\d{6}(?:\\d{3,5})?|[57]\\d{8}|[1-489]\\d{7}",
      [7, 8, 9, 10, 11, 12],
      [
        ["(\\d{4})(\\d{3})", "$1-$2", ["125"]],
        ["(\\d{4})(\\d{2})(\\d{2})", "$1-$2-$3", ["121"]],
        ["(\\d)(\\d{3})(\\d{4})", "$1-$2-$3", ["[2-489]"], "0$1"],
        ["(\\d{2})(\\d{3})(\\d{4})", "$1-$2-$3", ["[57]"], "0$1"],
        ["(\\d{4})(\\d{3})(\\d{3})", "$1-$2-$3", ["12"]],
        ["(\\d{4})(\\d{6})", "$1-$2", ["159"]],
        ["(\\d)(\\d{3})(\\d{3})(\\d{3})", "$1-$2-$3-$4", ["1[7-9]"]],
        ["(\\d{3})(\\d{1,2})(\\d{3})(\\d{4})", "$1-$2 $3-$4", ["15"]],
      ],
      "0",
    ],
    IM: [
      "44",
      "00",
      "1624\\d{6}|(?:[3578]\\d|90)\\d{8}",
      [10],
      0,
      "0",
      0,
      "0|([25-8]\\d{5})$",
      "1624$1",
      0,
      "74576|(?:16|7[56])24",
    ],
    IN: ["91", "00", "(?:000800|[2-9]\\d\\d)\\d{7}|1\\d{7,12}", [
      8,
      9,
      10,
      11,
      12,
      13,
    ], [
      [
        "(\\d{8})",
        "$1",
        [
          "5(?:0|2[23]|3[03]|[67]1|88)",
          "5(?:0|2(?:21|3)|3(?:0|3[23])|616|717|888)",
          "5(?:0|2(?:21|3)|3(?:0|3[23])|616|717|8888)",
        ],
        0,
        1,
      ],
      ["(\\d{4})(\\d{4,5})", "$1 $2", ["180", "1800"], 0, 1],
      ["(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3", ["140"], 0, 1],
      [
        "(\\d{2})(\\d{4})(\\d{4})",
        "$1 $2 $3",
        [
          "11|2[02]|33|4[04]|79[1-7]|80[2-46]",
          "11|2[02]|33|4[04]|79(?:[1-6]|7[19])|80(?:[2-4]|6[0-589])",
          "11|2[02]|33|4[04]|79(?:[124-6]|3(?:[02-9]|1[0-24-9])|7(?:1|9[1-6]))|80(?:[2-4]|6[0-589])",
        ],
        "0$1",
        1,
      ],
      [
        "(\\d{3})(\\d{3})(\\d{4})",
        "$1 $2 $3",
        [
          "1(?:2[0-249]|3[0-25]|4[145]|[68]|7[1257])|2(?:1[257]|3[013]|4[01]|5[0137]|6[0158]|78|8[1568])|3(?:26|4[1-3]|5[34]|6[01489]|7[02-46]|8[159])|4(?:1[36]|2[1-47]|5[12]|6[0-26-9]|7[0-24-9]|8[013-57]|9[014-7])|5(?:1[025]|22|[36][25]|4[28]|5[12]|[78]1)|6(?:12|[2-4]1|5[17]|6[13]|80)|7(?:12|3[134]|4[47]|61|88)|8(?:16|2[014]|3[126]|6[136]|7[078]|8[34]|91)|(?:43|59|75)[15]|(?:1[59]|29|67|72)[14]",
          "1(?:2[0-24]|3[0-25]|4[145]|[59][14]|6[1-9]|7[1257]|8[1-57-9])|2(?:1[257]|3[013]|4[01]|5[0137]|6[058]|78|8[1568]|9[14])|3(?:26|4[1-3]|5[34]|6[01489]|7[02-46]|8[159])|4(?:1[36]|2[1-47]|3[15]|5[12]|6[0-26-9]|7[0-24-9]|8[013-57]|9[014-7])|5(?:1[025]|22|[36][25]|4[28]|[578]1|9[15])|674|7(?:(?:2[14]|3[34]|5[15])[2-6]|61[346]|88[0-8])|8(?:70[2-6]|84[235-7]|91[3-7])|(?:1(?:29|60|8[06])|261|552|6(?:12|[2-47]1|5[17]|6[13]|80)|7(?:12|31|4[47])|8(?:16|2[014]|3[126]|6[136]|7[78]|83))[2-7]",
          "1(?:2[0-24]|3[0-25]|4[145]|[59][14]|6[1-9]|7[1257]|8[1-57-9])|2(?:1[257]|3[013]|4[01]|5[0137]|6[058]|78|8[1568]|9[14])|3(?:26|4[1-3]|5[34]|6[01489]|7[02-46]|8[159])|4(?:1[36]|2[1-47]|3[15]|5[12]|6[0-26-9]|7[0-24-9]|8[013-57]|9[014-7])|5(?:1[025]|22|[36][25]|4[28]|[578]1|9[15])|6(?:12(?:[2-6]|7[0-8])|74[2-7])|7(?:(?:2[14]|5[15])[2-6]|3171|61[346]|88(?:[2-7]|82))|8(?:70[2-6]|84(?:[2356]|7[19])|91(?:[3-6]|7[19]))|73[134][2-6]|(?:74[47]|8(?:16|2[014]|3[126]|6[136]|7[78]|83))(?:[2-6]|7[19])|(?:1(?:29|60|8[06])|261|552|6(?:[2-4]1|5[17]|6[13]|7(?:1|4[0189])|80)|7(?:12|88[01]))[2-7]",
        ],
        "0$1",
        1,
      ],
      [
        "(\\d{4})(\\d{3})(\\d{3})",
        "$1 $2 $3",
        [
          "1(?:[2-479]|5[0235-9])|[2-5]|6(?:1[1358]|2[2457-9]|3[2-5]|4[235-7]|5[2-689]|6[24578]|7[235689]|8[1-6])|7(?:1[013-9]|28|3[129]|4[1-35689]|5[29]|6[02-5]|70)|807",
          "1(?:[2-479]|5[0235-9])|[2-5]|6(?:1[1358]|2(?:[2457]|84|95)|3(?:[2-4]|55)|4[235-7]|5[2-689]|6[24578]|7[235689]|8[1-6])|7(?:1(?:[013-8]|9[6-9])|28[6-8]|3(?:17|2[0-49]|9[2-57])|4(?:1[2-4]|[29][0-7]|3[0-8]|[56]|8[0-24-7])|5(?:2[1-3]|9[0-6])|6(?:0[5689]|2[5-9]|3[02-8]|4|5[0-367])|70[13-7])|807[19]",
          "1(?:[2-479]|5(?:[0236-9]|5[013-9]))|[2-5]|6(?:2(?:84|95)|355|83)|73179|807(?:1|9[1-3])|(?:1552|6(?:1[1358]|2[2457]|3[2-4]|4[235-7]|5[2-689]|6[24578]|7[235689]|8[124-6])\\d|7(?:1(?:[013-8]\\d|9[6-9])|28[6-8]|3(?:2[0-49]|9[2-57])|4(?:1[2-4]|[29][0-7]|3[0-8]|[56]\\d|8[0-24-7])|5(?:2[1-3]|9[0-6])|6(?:0[5689]|2[5-9]|3[02-8]|4\\d|5[0-367])|70[13-7]))[2-7]",
        ],
        "0$1",
        1,
      ],
      ["(\\d{5})(\\d{5})", "$1 $2", ["[6-9]"], "0$1", 1],
      [
        "(\\d{4})(\\d{2,4})(\\d{4})",
        "$1 $2 $3",
        ["1(?:6|8[06])", "1(?:6|8[06]0)"],
        0,
        1,
      ],
      ["(\\d{4})(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3 $4", ["18"], 0, 1],
    ], "0"],
    IO: ["246", "00", "3\\d{6}", [7], [["(\\d{3})(\\d{4})", "$1 $2", ["3"]]]],
    IQ: ["964", "00", "(?:1|7\\d\\d)\\d{7}|[2-6]\\d{7,8}", [8, 9, 10], [
      ["(\\d)(\\d{3})(\\d{4})", "$1 $2 $3", ["1"], "0$1"],
      ["(\\d{2})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["[2-6]"], "0$1"],
      ["(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3", ["7"], "0$1"],
    ], "0"],
    IR: [
      "98",
      "00",
      "[1-9]\\d{9}|(?:[1-8]\\d\\d|9)\\d{3,4}",
      [4, 5, 6, 7, 10],
      [
        ["(\\d{4,5})", "$1", ["96"], "0$1"],
        ["(\\d{2})(\\d{4,5})", "$1 $2", [
          "(?:1[137]|2[13-68]|3[1458]|4[145]|5[1468]|6[16]|7[1467]|8[13467])[12689]",
        ], "0$1"],
        ["(\\d{3})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["9"], "0$1"],
        ["(\\d{2})(\\d{4})(\\d{4})", "$1 $2 $3", ["[1-8]"], "0$1"],
      ],
      "0",
    ],
    IS: [
      "354",
      "00|1(?:0(?:01|[12]0)|100)",
      "(?:38\\d|[4-9])\\d{6}",
      [7, 9],
      [["(\\d{3})(\\d{4})", "$1 $2", ["[4-9]"]], [
        "(\\d{3})(\\d{3})(\\d{3})",
        "$1 $2 $3",
        ["3"],
      ]],
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      "00",
    ],
    IT: [
      "39",
      "00",
      "0\\d{5,10}|3[0-8]\\d{7,10}|55\\d{8}|8\\d{5}(?:\\d{2,4})?|(?:1\\d|39)\\d{7,8}",
      [6, 7, 8, 9, 10, 11],
      [
        ["(\\d{2})(\\d{4,6})", "$1 $2", ["0[26]"]],
        ["(\\d{3})(\\d{3,6})", "$1 $2", [
          "0[13-57-9][0159]|8(?:03|4[17]|9[245])",
          "0[13-57-9][0159]|8(?:03|4[17]|9(?:2|[45][0-4]))",
        ]],
        ["(\\d{4})(\\d{2,6})", "$1 $2", ["0(?:[13-579][2-46-8]|8[236-8])"]],
        ["(\\d{4})(\\d{4})", "$1 $2", ["894"]],
        ["(\\d{2})(\\d{3,4})(\\d{4})", "$1 $2 $3", ["0[26]|5"]],
        ["(\\d{3})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["1[4679]|[38]"]],
        ["(\\d{3})(\\d{3,4})(\\d{4})", "$1 $2 $3", ["0[13-57-9][0159]"]],
        ["(\\d{2})(\\d{4})(\\d{5})", "$1 $2 $3", ["0[26]"]],
        ["(\\d{4})(\\d{3})(\\d{4})", "$1 $2 $3", ["0"]],
        ["(\\d{3})(\\d{4})(\\d{4,5})", "$1 $2 $3", ["3"]],
      ],
      0,
      0,
      0,
      0,
      0,
      0,
      [
        ["0669[0-79]\\d{1,6}|0(?:1(?:[0159]\\d|[27][1-5]|31|4[1-4]|6[1356]|8[2-57])|2\\d\\d|3(?:[0159]\\d|2[1-4]|3[12]|[48][1-6]|6[2-59]|7[1-7])|4(?:[0159]\\d|[23][1-9]|4[245]|6[1-5]|7[1-4]|81)|5(?:[0159]\\d|2[1-5]|3[2-6]|4[1-79]|6[4-6]|7[1-578]|8[3-8])|6(?:[0-57-9]\\d|6[0-8])|7(?:[0159]\\d|2[12]|3[1-7]|4[2-46]|6[13569]|7[13-6]|8[1-59])|8(?:[0159]\\d|2[3-578]|3[1-356]|[6-8][1-5])|9(?:[0159]\\d|[238][1-5]|4[12]|6[1-8]|7[1-6]))\\d{2,7}"],
        ["3[1-9]\\d{8}|3[2-9]\\d{7}", [9, 10]],
        ["80(?:0\\d{3}|3)\\d{3}", [6, 9]],
        [
          "(?:0878\\d\\d|89(?:2|4[5-9]\\d))\\d{3}|89[45][0-4]\\d\\d|(?:1(?:44|6[346])|89(?:5[5-9]|9))\\d{6}",
          [6, 8, 9, 10],
        ],
        ["1(?:78\\d|99)\\d{6}", [9, 10]],
        0,
        0,
        0,
        ["55\\d{8}", [10]],
        ["84(?:[08]\\d{3}|[17])\\d{3}", [6, 9]],
      ],
    ],
    JE: [
      "44",
      "00",
      "1534\\d{6}|(?:[3578]\\d|90)\\d{8}",
      [10],
      0,
      "0",
      0,
      "0|([0-24-8]\\d{5})$",
      "1534$1",
      0,
      0,
      [
        ["1534[0-24-8]\\d{5}"],
        ["7(?:(?:(?:50|82)9|937)\\d|7(?:00[378]|97[7-9]))\\d{5}"],
        ["80(?:07(?:35|81)|8901)\\d{4}"],
        ["(?:8(?:4(?:4(?:4(?:05|42|69)|703)|5(?:041|800))|7(?:0002|1206))|90(?:066[59]|1810|71(?:07|55)))\\d{4}"],
        ["701511\\d{4}"],
        0,
        ["(?:3(?:0(?:07(?:35|81)|8901)|3\\d{4}|4(?:4(?:4(?:05|42|69)|703)|5(?:041|800))|7(?:0002|1206))|55\\d{4})\\d{4}"],
        ["76(?:464|652)\\d{5}|76(?:0[0-2]|2[356]|34|4[01347]|5[49]|6[0-369]|77|81|9[139])\\d{6}"],
        ["56\\d{8}"],
      ],
    ],
    JM: [
      "1",
      "011",
      "(?:[58]\\d\\d|658|900)\\d{7}",
      [10],
      0,
      "1",
      0,
      0,
      0,
      0,
      "658|876",
    ],
    JO: ["962", "00", "(?:(?:[2689]|7\\d)\\d|32|53)\\d{6}", [8, 9], [
      ["(\\d)(\\d{3})(\\d{4})", "$1 $2 $3", ["[2356]|87"], "(0$1)"],
      ["(\\d{3})(\\d{5,6})", "$1 $2", ["[89]"], "0$1"],
      ["(\\d{2})(\\d{7})", "$1 $2", ["70"], "0$1"],
      ["(\\d)(\\d{4})(\\d{4})", "$1 $2 $3", ["7"], "0$1"],
    ], "0"],
    JP: [
      "81",
      "010",
      "00[1-9]\\d{6,14}|[257-9]\\d{9}|(?:00|[1-9]\\d\\d)\\d{6}",
      [8, 9, 10, 11, 12, 13, 14, 15, 16, 17],
      [
        ["(\\d{3})(\\d{3})(\\d{3})", "$1-$2-$3", ["(?:12|57|99)0"], "0$1"],
        ["(\\d{4})(\\d)(\\d{4})", "$1-$2-$3", [
          "1(?:26|3[79]|4[56]|5[4-68]|6[3-5])|499|5(?:76|97)|746|8(?:3[89]|47|51|63)|9(?:49|80|9[16])",
          "1(?:267|3(?:7[247]|9[278])|466|5(?:47|58|64)|6(?:3[245]|48|5[4-68]))|499[2468]|5(?:76|97)9|7468|8(?:3(?:8[7-9]|96)|477|51[2-9]|636)|9(?:496|802|9(?:1[23]|69))|1(?:45|58)[67]",
          "1(?:267|3(?:7[247]|9[278])|466|5(?:47|58|64)|6(?:3[245]|48|5[4-68]))|499[2468]|5(?:769|979[2-69])|7468|8(?:3(?:8[7-9]|96[2457-9])|477|51[2-9]|636[457-9])|9(?:496|802|9(?:1[23]|69))|1(?:45|58)[67]",
        ], "0$1"],
        ["(\\d{2})(\\d{3})(\\d{4})", "$1-$2-$3", ["60"], "0$1"],
        ["(\\d)(\\d{4})(\\d{4})", "$1-$2-$3", [
          "[36]|4(?:2[09]|7[01])",
          "[36]|4(?:2(?:0|9[02-69])|7(?:0[019]|1))",
        ], "0$1"],
        ["(\\d{2})(\\d{3})(\\d{4})", "$1-$2-$3", [
          "1(?:1|5[45]|77|88|9[69])|2(?:2[1-37]|3[0-269]|4[59]|5|6[24]|7[1-358]|8[1369]|9[0-38])|4(?:[28][1-9]|3[0-57]|[45]|6[248]|7[2-579]|9[29])|5(?:2|3[045]|4[0-369]|5[29]|8[02389]|9[0-389])|7(?:2[02-46-9]|34|[58]|6[0249]|7[57]|9[2-6])|8(?:2[124589]|3[27-9]|49|51|6|7[0-468]|8[68]|9[019])|9(?:[23][1-9]|4[15]|5[138]|6[1-3]|7[156]|8[189]|9[1-489])",
          "1(?:1|5(?:4[018]|5[017])|77|88|9[69])|2(?:2(?:[127]|3[014-9])|3[0-269]|4[59]|5(?:[1-3]|5[0-69]|9[19])|62|7(?:[1-35]|8[0189])|8(?:[16]|3[0134]|9[0-5])|9(?:[028]|17))|4(?:2(?:[13-79]|8[014-6])|3[0-57]|[45]|6[248]|7[2-47]|8[1-9])|5(?:2|3[045]|4[0-369]|8[02389]|9[0-3])|7(?:2[02-46-9]|34|[58]|6[0249]|7[57]|9(?:[23]|4[0-59]|5[01569]|6[0167]))|8(?:2(?:[1258]|4[0-39]|9[0-2469])|49|51|6(?:[0-24]|36|5[0-3589]|72|9[01459])|7[0-468]|8[68])|9(?:[23][1-9]|4[15]|5[138]|6[1-3]|7[156]|8[189]|9(?:[1289]|3[34]|4[0178]))|(?:49|55|83)[29]|(?:264|837)[016-9]|2(?:57|93)[015-9]|(?:25[0468]|422|838)[01]|(?:47[59]|59[89]|8(?:6[68]|9))[019]",
          "1(?:1|5(?:4[018]|5[017])|77|88|9[69])|2(?:2[127]|3[0-269]|4[59]|5(?:[1-3]|5[0-69]|9(?:17|99))|6(?:2|4[016-9])|7(?:[1-35]|8[0189])|8(?:[16]|3[0134]|9[0-5])|9(?:[028]|17))|4(?:2(?:[13-79]|8[014-6])|3[0-57]|[45]|6[248]|7[2-47]|9[29])|5(?:2|3[045]|4[0-369]|5[29]|8[02389]|9[0-3])|7(?:2[02-46-9]|34|[58]|6[0249]|7[57]|9(?:[23]|4[0-59]|5[01569]|6[0167]))|8(?:2(?:[1258]|4[0-39]|9[0169])|3(?:[29]|7(?:[017-9]|6[6-8]))|49|51|6(?:[0-24]|36[23]|5(?:[0-389]|5[23])|6(?:[01]|9[178])|72|9[0145])|7[0-468]|8[68])|9(?:4[15]|5[138]|7[156]|8[189]|9(?:[1289]|3(?:31|4[357])|4[0178]))|(?:8294|96)[1-3]|2(?:57|93)[015-9]|(?:223|8699)[014-9]|(?:25[0468]|422|838)[01]|(?:48|8292|9[23])[1-9]|(?:47[59]|59[89]|8(?:68|9))[019]",
          "1(?:1|5(?:4[018]|5[017])|77|88|9[69])|2(?:2[127]|3[0-269]|4[59]|5(?:[1-3]|5[0-69]|7[015-9]|9(?:17|99))|6(?:2|4[016-9])|7(?:[1-35]|8[0189])|8(?:[16]|3[0134]|9[0-5])|9(?:[028]|17|3[015-9]))|4(?:2(?:[13-79]|8[014-6])|3[0-57]|[45]|6[248]|7[2-47]|9[29])|5(?:2|3[045]|4[0-369]|5[29]|8[02389]|9[0-3])|7(?:2[02-46-9]|34|[58]|6[0249]|7[57]|9(?:[23]|4[0-59]|5[01569]|6[0167]))|8(?:2(?:[1258]|4[0-39]|9(?:[019]|4[1-3]|6(?:[0-47-9]|5[01346-9])))|3(?:[29]|7(?:[017-9]|6[6-8]))|49|51|6(?:[0-24]|36[23]|5(?:[0-389]|5[23])|6(?:[01]|9[178])|72|9[0145])|7[0-468]|8[68])|9(?:4[15]|5[138]|6[1-3]|7[156]|8[189]|9(?:[1289]|3(?:31|4[357])|4[0178]))|(?:223|8699)[014-9]|(?:25[0468]|422|838)[01]|(?:48|829(?:2|66)|9[23])[1-9]|(?:47[59]|59[89]|8(?:68|9))[019]",
        ], "0$1"],
        ["(\\d{3})(\\d{2})(\\d{4})", "$1-$2-$3", [
          "[14]|[289][2-9]|5[3-9]|7[2-4679]",
        ], "0$1"],
        ["(\\d{3})(\\d{3})(\\d{4})", "$1-$2-$3", ["800"], "0$1"],
        ["(\\d{2})(\\d{4})(\\d{4})", "$1-$2-$3", ["[257-9]"], "0$1"],
      ],
      "0",
    ],
    KE: [
      "254",
      "000",
      "(?:[17]\\d\\d|900)\\d{6}|(?:2|80)0\\d{6,7}|[4-6]\\d{6,8}",
      [7, 8, 9, 10],
      [["(\\d{2})(\\d{5,7})", "$1 $2", ["[24-6]"], "0$1"], [
        "(\\d{3})(\\d{6})",
        "$1 $2",
        ["[17]"],
        "0$1",
      ], ["(\\d{3})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["[89]"], "0$1"]],
      "0",
    ],
    KG: ["996", "00", "8\\d{9}|(?:[235-8]\\d|99)\\d{7}", [9, 10], [
      ["(\\d{4})(\\d{5})", "$1 $2", ["3(?:1[346]|[24-79])"], "0$1"],
      ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["[235-79]|88"], "0$1"],
      ["(\\d{3})(\\d{3})(\\d)(\\d{2,3})", "$1 $2 $3 $4", ["8"], "0$1"],
    ], "0"],
    KH: ["855", "00[14-9]", "1\\d{9}|[1-9]\\d{7,8}", [8, 9, 10], [[
      "(\\d{2})(\\d{3})(\\d{3,4})",
      "$1 $2 $3",
      ["[1-9]"],
      "0$1",
    ], ["(\\d{4})(\\d{3})(\\d{3})", "$1 $2 $3", ["1"]]], "0"],
    KI: [
      "686",
      "00",
      "(?:[37]\\d|6[0-79])\\d{6}|(?:[2-48]\\d|50)\\d{3}",
      [5, 8],
      0,
      "0",
    ],
    KM: ["269", "00", "[3478]\\d{6}", [7], [[
      "(\\d{3})(\\d{2})(\\d{2})",
      "$1 $2 $3",
      ["[3478]"],
    ]]],
    KN: [
      "1",
      "011",
      "(?:[58]\\d\\d|900)\\d{7}",
      [10],
      0,
      "1",
      0,
      "1|([2-7]\\d{6})$",
      "869$1",
      0,
      "869",
    ],
    KP: ["850", "00|99", "85\\d{6}|(?:19\\d|[2-7])\\d{7}", [8, 10], [
      ["(\\d{2})(\\d{3})(\\d{3})", "$1 $2 $3", ["8"], "0$1"],
      ["(\\d)(\\d{3})(\\d{4})", "$1 $2 $3", ["[2-7]"], "0$1"],
      ["(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3", ["1"], "0$1"],
    ], "0"],
    KR: [
      "82",
      "00(?:[125689]|3(?:[46]5|91)|7(?:00|27|3|55|6[126]))",
      "00[1-9]\\d{8,11}|(?:[12]|5\\d{3})\\d{7}|[13-6]\\d{9}|(?:[1-6]\\d|80)\\d{7}|[3-6]\\d{4,5}|(?:00|7)0\\d{8}",
      [5, 6, 8, 9, 10, 11, 12, 13, 14],
      [
        [
          "(\\d{2})(\\d{3,4})",
          "$1-$2",
          ["(?:3[1-3]|[46][1-4]|5[1-5])1"],
          "0$1",
        ],
        ["(\\d{4})(\\d{4})", "$1-$2", ["1"]],
        ["(\\d)(\\d{3,4})(\\d{4})", "$1-$2-$3", ["2"], "0$1"],
        ["(\\d{2})(\\d{3})(\\d{4})", "$1-$2-$3", ["60|8"], "0$1"],
        ["(\\d{2})(\\d{3,4})(\\d{4})", "$1-$2-$3", ["[1346]|5[1-5]"], "0$1"],
        ["(\\d{2})(\\d{4})(\\d{4})", "$1-$2-$3", ["[57]"], "0$1"],
        ["(\\d{2})(\\d{5})(\\d{4})", "$1-$2-$3", ["5"], "0$1"],
      ],
      "0",
      0,
      "0(8(?:[1-46-8]|5\\d\\d))?",
    ],
    KW: ["965", "00", "(?:18|[2569]\\d\\d)\\d{5}", [7, 8], [[
      "(\\d{4})(\\d{3,4})",
      "$1 $2",
      ["[169]|2(?:[235]|4[1-35-9])|52"],
    ], ["(\\d{3})(\\d{5})", "$1 $2", ["[25]"]]]],
    KY: [
      "1",
      "011",
      "(?:345|[58]\\d\\d|900)\\d{7}",
      [10],
      0,
      "1",
      0,
      "1|([2-9]\\d{6})$",
      "345$1",
      0,
      "345",
    ],
    KZ: [
      "7",
      "810",
      "33622\\d{5}|(?:7\\d|80)\\d{8}",
      [10],
      0,
      "8",
      0,
      0,
      0,
      0,
      "33|7",
      0,
      "8~10",
    ],
    LA: [
      "856",
      "00",
      "[23]\\d{9}|3\\d{8}|(?:[235-8]\\d|41)\\d{6}",
      [8, 9, 10],
      [["(\\d{2})(\\d{3})(\\d{3})", "$1 $2 $3", ["2[13]|3[14]|[4-8]"], "0$1"], [
        "(\\d{2})(\\d{2})(\\d{2})(\\d{3})",
        "$1 $2 $3 $4",
        ["30[013-9]"],
        "0$1",
      ], ["(\\d{2})(\\d{2})(\\d{3})(\\d{3})", "$1 $2 $3 $4", ["[23]"], "0$1"]],
      "0",
    ],
    LB: ["961", "00", "[27-9]\\d{7}|[13-9]\\d{6}", [7, 8], [[
      "(\\d)(\\d{3})(\\d{3})",
      "$1 $2 $3",
      ["[13-69]|7(?:[2-57]|62|8[0-7]|9[04-9])|8[02-9]"],
      "0$1",
    ], ["(\\d{2})(\\d{3})(\\d{3})", "$1 $2 $3", ["[27-9]"]]], "0"],
    LC: [
      "1",
      "011",
      "(?:[58]\\d\\d|758|900)\\d{7}",
      [10],
      0,
      "1",
      0,
      "1|([2-8]\\d{6})$",
      "758$1",
      0,
      "758",
    ],
    LI: [
      "423",
      "00",
      "90\\d{5}|(?:[2378]|6\\d\\d)\\d{6}",
      [7, 9],
      [["(\\d{3})(\\d{2})(\\d{2})", "$1 $2 $3", ["[237-9]"]], [
        "(\\d{2})(\\d{3})(\\d{4})",
        "$1 $2 $3",
        ["69"],
      ], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["6"]]],
      "0",
      0,
      "0|(1001)",
    ],
    LK: ["94", "00", "[1-9]\\d{8}", [9], [[
      "(\\d{2})(\\d{3})(\\d{4})",
      "$1 $2 $3",
      ["7"],
      "0$1",
    ], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["[1-689]"], "0$1"]], "0"],
    LR: ["231", "00", "(?:2|33|5\\d|77|88)\\d{7}|[4-6]\\d{6}", [7, 8, 9], [
      ["(\\d)(\\d{3})(\\d{3})", "$1 $2 $3", ["[4-6]"], "0$1"],
      ["(\\d{2})(\\d{3})(\\d{3})", "$1 $2 $3", ["2"], "0$1"],
      ["(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["[3578]"], "0$1"],
    ], "0"],
    LS: ["266", "00", "(?:[256]\\d\\d|800)\\d{5}", [8], [[
      "(\\d{4})(\\d{4})",
      "$1 $2",
      ["[2568]"],
    ]]],
    LT: [
      "370",
      "00",
      "(?:[3469]\\d|52|[78]0)\\d{6}",
      [8],
      [
        ["(\\d)(\\d{3})(\\d{4})", "$1 $2 $3", ["52[0-7]"], "(8-$1)", 1],
        ["(\\d{3})(\\d{2})(\\d{3})", "$1 $2 $3", ["[7-9]"], "8 $1", 1],
        ["(\\d{2})(\\d{6})", "$1 $2", ["37|4(?:[15]|6[1-8])"], "(8-$1)", 1],
        ["(\\d{3})(\\d{5})", "$1 $2", ["[3-6]"], "(8-$1)", 1],
      ],
      "8",
      0,
      "[08]",
    ],
    LU: [
      "352",
      "00",
      "35[013-9]\\d{4,8}|6\\d{8}|35\\d{2,4}|(?:[2457-9]\\d|3[0-46-9])\\d{2,9}",
      [4, 5, 6, 7, 8, 9, 10, 11],
      [
        ["(\\d{2})(\\d{3})", "$1 $2", [
          "2(?:0[2-689]|[2-9])|[3-57]|8(?:0[2-9]|[13-9])|9(?:0[89]|[2-579])",
        ]],
        ["(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3", [
          "2(?:0[2-689]|[2-9])|[3-57]|8(?:0[2-9]|[13-9])|9(?:0[89]|[2-579])",
        ]],
        ["(\\d{2})(\\d{2})(\\d{3})", "$1 $2 $3", ["20[2-689]"]],
        ["(\\d{2})(\\d{2})(\\d{2})(\\d{1,2})", "$1 $2 $3 $4", [
          "2(?:[0367]|4[3-8])",
        ]],
        ["(\\d{3})(\\d{2})(\\d{3})", "$1 $2 $3", ["80[01]|90[015]"]],
        ["(\\d{2})(\\d{2})(\\d{2})(\\d{3})", "$1 $2 $3 $4", ["20"]],
        ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["6"]],
        ["(\\d{2})(\\d{2})(\\d{2})(\\d{2})(\\d{1,2})", "$1 $2 $3 $4 $5", [
          "2(?:[0367]|4[3-8])",
        ]],
        ["(\\d{2})(\\d{2})(\\d{2})(\\d{1,5})", "$1 $2 $3 $4", [
          "[3-57]|8[13-9]|9(?:0[89]|[2-579])|(?:2|80)[2-9]",
        ]],
      ],
      0,
      0,
      "(15(?:0[06]|1[12]|[35]5|4[04]|6[26]|77|88|99)\\d)",
    ],
    LV: ["371", "00", "(?:[268]\\d|90)\\d{6}", [8], [[
      "(\\d{2})(\\d{3})(\\d{3})",
      "$1 $2 $3",
      ["[269]|8[01]"],
    ]]],
    LY: ["218", "00", "[2-9]\\d{8}", [9], [["(\\d{2})(\\d{7})", "$1-$2", [
      "[2-9]",
    ], "0$1"]], "0"],
    MA: [
      "212",
      "00",
      "[5-8]\\d{8}",
      [9],
      [
        ["(\\d{5})(\\d{4})", "$1-$2", [
          "5(?:29|38)",
          "5(?:29|38)[89]",
          "5(?:29|38)[89]0",
        ], "0$1"],
        ["(\\d{3})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["5[45]"], "0$1"],
        ["(\\d{4})(\\d{5})", "$1-$2", [
          "5(?:2[2-489]|3[5-9]|9)|892",
          "5(?:2(?:[2-49]|8[235-9])|3[5-9]|9)|892",
        ], "0$1"],
        ["(\\d{2})(\\d{7})", "$1-$2", ["8"], "0$1"],
        ["(\\d{3})(\\d{6})", "$1-$2", ["[5-7]"], "0$1"],
      ],
      "0",
      0,
      0,
      0,
      0,
      0,
      [
        ["5(?:29(?:[189][05]|2[29]|3[01])|38[89][05])\\d{4}|5(?:2(?:[015-7]\\d|2[02-9]|3[0-578]|4[02-46-8]|8[0235-7]|90)|3(?:[0-47]\\d|5[02-9]|6[02-8]|80|9[3-9])|(?:4[067]|5[03])\\d)\\d{5}"],
        ["(?:6(?:[0-79]\\d|8[0-247-9])|7(?:0\\d|10|6[1267]|7[0-57]))\\d{6}"],
        ["80\\d{7}"],
        ["89\\d{7}"],
        0,
        0,
        0,
        0,
        ["592(?:4[0-2]|93)\\d{4}"],
      ],
    ],
    MC: ["377", "00", "(?:[3489]|6\\d)\\d{7}", [8, 9], [
      ["(\\d{2})(\\d{3})(\\d{3})", "$1 $2 $3", ["4"], "0$1"],
      ["(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[389]"]],
      ["(\\d)(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4 $5", ["6"], "0$1"],
    ], "0"],
    MD: ["373", "00", "(?:[235-7]\\d|[89]0)\\d{6}", [8], [
      ["(\\d{3})(\\d{5})", "$1 $2", ["[89]"], "0$1"],
      ["(\\d{2})(\\d{3})(\\d{3})", "$1 $2 $3", ["22|3"], "0$1"],
      ["(\\d{3})(\\d{2})(\\d{3})", "$1 $2 $3", ["[25-7]"], "0$1"],
    ], "0"],
    ME: ["382", "00", "(?:20|[3-79]\\d)\\d{6}|80\\d{6,7}", [8, 9], [[
      "(\\d{2})(\\d{3})(\\d{3,4})",
      "$1 $2 $3",
      ["[2-9]"],
      "0$1",
    ]], "0"],
    MF: [
      "590",
      "00",
      "(?:590|(?:69|80)\\d|976)\\d{6}",
      [9],
      0,
      "0",
      0,
      0,
      0,
      0,
      0,
      [
        ["590(?:0[079]|[14]3|[27][79]|30|5[0-268]|87)\\d{4}"],
        ["69(?:0\\d\\d|1(?:2[2-9]|3[0-5]))\\d{4}"],
        ["80[0-5]\\d{6}"],
        0,
        0,
        0,
        0,
        0,
        ["976[01]\\d{5}"],
      ],
    ],
    MG: [
      "261",
      "00",
      "[23]\\d{8}",
      [9],
      [["(\\d{2})(\\d{2})(\\d{3})(\\d{2})", "$1 $2 $3 $4", ["[23]"], "0$1"]],
      "0",
      0,
      "0|([24-9]\\d{6})$",
      "20$1",
    ],
    MH: ["692", "011", "329\\d{4}|(?:[256]\\d|45)\\d{5}", [7], [[
      "(\\d{3})(\\d{4})",
      "$1-$2",
      ["[2-6]"],
    ]], "1"],
    MK: ["389", "00", "[2-578]\\d{7}", [8], [
      ["(\\d)(\\d{3})(\\d{4})", "$1 $2 $3", ["2"], "0$1"],
      ["(\\d{2})(\\d{3})(\\d{3})", "$1 $2 $3", ["[347]"], "0$1"],
      ["(\\d{3})(\\d)(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[58]"], "0$1"],
    ], "0"],
    ML: ["223", "00", "[24-9]\\d{7}", [8], [[
      "(\\d{2})(\\d{2})(\\d{2})(\\d{2})",
      "$1 $2 $3 $4",
      ["[24-9]"],
    ]]],
    MM: [
      "95",
      "00",
      "1\\d{5,7}|95\\d{6}|(?:[4-7]|9[0-46-9])\\d{6,8}|(?:2|8\\d)\\d{5,8}",
      [6, 7, 8, 9, 10],
      [
        ["(\\d)(\\d{2})(\\d{3})", "$1 $2 $3", ["16|2"], "0$1"],
        ["(\\d{2})(\\d{2})(\\d{3})", "$1 $2 $3", [
          "[45]|6(?:0[23]|[1-689]|7[235-7])|7(?:[0-4]|5[2-7])|8[1-6]",
        ], "0$1"],
        ["(\\d)(\\d{3})(\\d{3,4})", "$1 $2 $3", ["[12]"], "0$1"],
        ["(\\d{2})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["[4-7]|8[1-35]"], "0$1"],
        [
          "(\\d)(\\d{3})(\\d{4,6})",
          "$1 $2 $3",
          ["9(?:2[0-4]|[35-9]|4[137-9])"],
          "0$1",
        ],
        ["(\\d)(\\d{4})(\\d{4})", "$1 $2 $3", ["2"], "0$1"],
        ["(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3", ["8"], "0$1"],
        ["(\\d)(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3 $4", ["92"], "0$1"],
        ["(\\d)(\\d{5})(\\d{4})", "$1 $2 $3", ["9"], "0$1"],
      ],
      "0",
    ],
    MN: ["976", "001", "[12]\\d{7,9}|[57-9]\\d{7}", [8, 9, 10], [
      ["(\\d{2})(\\d{2})(\\d{4})", "$1 $2 $3", ["[12]1"], "0$1"],
      ["(\\d{4})(\\d{4})", "$1 $2", ["[57-9]"]],
      ["(\\d{3})(\\d{5,6})", "$1 $2", ["[12]2[1-3]"], "0$1"],
      ["(\\d{4})(\\d{5,6})", "$1 $2", [
        "[12](?:27|3[2-8]|4[2-68]|5[1-4689])",
        "[12](?:27|3[2-8]|4[2-68]|5[1-4689])[0-3]",
      ], "0$1"],
      ["(\\d{5})(\\d{4,5})", "$1 $2", ["[12]"], "0$1"],
    ], "0"],
    MO: ["853", "00", "(?:28|[68]\\d)\\d{6}", [8], [[
      "(\\d{4})(\\d{4})",
      "$1 $2",
      ["[268]"],
    ]]],
    MP: [
      "1",
      "011",
      "[58]\\d{9}|(?:67|90)0\\d{7}",
      [10],
      0,
      "1",
      0,
      "1|([2-9]\\d{6})$",
      "670$1",
      0,
      "670",
    ],
    MQ: ["596", "00", "(?:69|80)\\d{7}|(?:59|97)6\\d{6}", [9], [[
      "(\\d{3})(\\d{2})(\\d{2})(\\d{2})",
      "$1 $2 $3 $4",
      ["[569]"],
      "0$1",
    ], ["(\\d{3})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["8"], "0$1"]], "0"],
    MR: ["222", "00", "(?:[2-4]\\d\\d|800)\\d{5}", [8], [[
      "(\\d{2})(\\d{2})(\\d{2})(\\d{2})",
      "$1 $2 $3 $4",
      ["[2-48]"],
    ]]],
    MS: [
      "1",
      "011",
      "(?:[58]\\d\\d|664|900)\\d{7}",
      [10],
      0,
      "1",
      0,
      "1|([34]\\d{6})$",
      "664$1",
      0,
      "664",
    ],
    MT: ["356", "00", "3550\\d{4}|(?:[2579]\\d\\d|800)\\d{5}", [8], [[
      "(\\d{4})(\\d{4})",
      "$1 $2",
      ["[2357-9]"],
    ]]],
    MU: [
      "230",
      "0(?:0|[24-7]0|3[03])",
      "(?:[2-468]|5\\d)\\d{6}",
      [7, 8],
      [["(\\d{3})(\\d{4})", "$1 $2", ["[2-46]|8[013]"]], [
        "(\\d{4})(\\d{4})",
        "$1 $2",
        ["5"],
      ]],
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      "020",
    ],
    MV: [
      "960",
      "0(?:0|19)",
      "(?:800|9[0-57-9]\\d)\\d{7}|[34679]\\d{6}",
      [7, 10],
      [["(\\d{3})(\\d{4})", "$1-$2", ["[3467]|9[13-9]"]], [
        "(\\d{3})(\\d{3})(\\d{4})",
        "$1 $2 $3",
        ["[89]"],
      ]],
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      "00",
    ],
    MW: ["265", "00", "1\\d{6}(?:\\d{2})?|(?:[23]1|77|88|99)\\d{7}", [7, 9], [
      ["(\\d)(\\d{3})(\\d{3})", "$1 $2 $3", ["1[2-9]"], "0$1"],
      ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["2"], "0$1"],
      ["(\\d{3})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[137-9]"], "0$1"],
    ], "0"],
    MX: [
      "52",
      "0[09]",
      "(?:1(?:[01467]\\d|[2359][1-9]|8[1-79])|[2-9]\\d)\\d{8}",
      [10, 11],
      [["(\\d{2})(\\d{4})(\\d{4})", "$1 $2 $3", ["33|5[56]|81"], 0, 1], [
        "(\\d{3})(\\d{3})(\\d{4})",
        "$1 $2 $3",
        ["[2-9]"],
        0,
        1,
      ], [
        "(\\d)(\\d{2})(\\d{4})(\\d{4})",
        "$2 $3 $4",
        ["1(?:33|5[56]|81)"],
        0,
        1,
      ], ["(\\d)(\\d{3})(\\d{3})(\\d{4})", "$2 $3 $4", ["1"], 0, 1]],
      "01",
      0,
      "0(?:[12]|4[45])|1",
      0,
      0,
      0,
      0,
      "00",
    ],
    MY: ["60", "00", "1\\d{8,9}|(?:3\\d|[4-9])\\d{7}", [8, 9, 10], [
      ["(\\d)(\\d{3})(\\d{4})", "$1-$2 $3", ["[4-79]"], "0$1"],
      [
        "(\\d{2})(\\d{3})(\\d{3,4})",
        "$1-$2 $3",
        ["1(?:[02469]|[378][1-9])|8"],
        "0$1",
      ],
      ["(\\d)(\\d{4})(\\d{4})", "$1-$2 $3", ["3"], "0$1"],
      ["(\\d)(\\d{3})(\\d{2})(\\d{4})", "$1-$2-$3-$4", ["1[36-8]"]],
      ["(\\d{3})(\\d{3})(\\d{4})", "$1-$2 $3", ["15"], "0$1"],
      ["(\\d{2})(\\d{4})(\\d{4})", "$1-$2 $3", ["1"], "0$1"],
    ], "0"],
    MZ: ["258", "00", "(?:2|8\\d)\\d{7}", [8, 9], [[
      "(\\d{2})(\\d{3})(\\d{3,4})",
      "$1 $2 $3",
      ["2|8[2-79]"],
    ], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["8"]]]],
    NA: ["264", "00", "[68]\\d{7,8}", [8, 9], [
      ["(\\d{2})(\\d{3})(\\d{3})", "$1 $2 $3", ["88"], "0$1"],
      ["(\\d{2})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["6"], "0$1"],
      ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["87"], "0$1"],
      ["(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["8"], "0$1"],
    ], "0"],
    NC: ["687", "00", "[2-57-9]\\d{5}", [6], [[
      "(\\d{2})(\\d{2})(\\d{2})",
      "$1.$2.$3",
      ["[2-57-9]"],
    ]]],
    NE: ["227", "00", "[027-9]\\d{7}", [8], [[
      "(\\d{2})(\\d{3})(\\d{3})",
      "$1 $2 $3",
      ["08"],
    ], ["(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", [
      "[089]|2[013]|7[04]",
    ]]]],
    NF: [
      "672",
      "00",
      "[13]\\d{5}",
      [6],
      [["(\\d{2})(\\d{4})", "$1 $2", ["1[0-3]"]], ["(\\d)(\\d{5})", "$1 $2", [
        "[13]",
      ]]],
      0,
      0,
      "([0-258]\\d{4})$",
      "3$1",
    ],
    NG: ["234", "009", "(?:[124-7]|9\\d{3})\\d{6}|[1-9]\\d{7}|[78]\\d{9,13}", [
      7,
      8,
      10,
      11,
      12,
      13,
      14,
    ], [
      ["(\\d{2})(\\d{2})(\\d{3})", "$1 $2 $3", ["78"], "0$1"],
      [
        "(\\d)(\\d{3})(\\d{3,4})",
        "$1 $2 $3",
        ["[12]|9(?:0[3-9]|[1-9])"],
        "0$1",
      ],
      ["(\\d{2})(\\d{3})(\\d{2,3})", "$1 $2 $3", ["[3-7]|8[2-9]"], "0$1"],
      ["(\\d{3})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["[7-9]"], "0$1"],
      ["(\\d{3})(\\d{4})(\\d{4,5})", "$1 $2 $3", ["[78]"], "0$1"],
      ["(\\d{3})(\\d{5})(\\d{5,6})", "$1 $2 $3", ["[78]"], "0$1"],
    ], "0"],
    NI: ["505", "00", "(?:1800|[25-8]\\d{3})\\d{4}", [8], [[
      "(\\d{4})(\\d{4})",
      "$1 $2",
      ["[125-8]"],
    ]]],
    NL: [
      "31",
      "00",
      "(?:[124-7]\\d\\d|3(?:[02-9]\\d|1[0-8]))\\d{6}|[89]\\d{6,9}|1\\d{4,5}",
      [5, 6, 7, 8, 9, 10],
      [
        ["(\\d{3})(\\d{4,7})", "$1 $2", ["[89]0"], "0$1"],
        ["(\\d{2})(\\d{7})", "$1 $2", ["66"], "0$1"],
        ["(\\d)(\\d{8})", "$1 $2", ["6"], "0$1"],
        ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", [
          "1[16-8]|2[259]|3[124]|4[17-9]|5[124679]",
        ], "0$1"],
        ["(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["[1-57-9]"], "0$1"],
      ],
      "0",
    ],
    NO: [
      "47",
      "00",
      "(?:0|[2-9]\\d{3})\\d{4}",
      [5, 8],
      [["(\\d{3})(\\d{2})(\\d{3})", "$1 $2 $3", ["[489]|59"]], [
        "(\\d{2})(\\d{2})(\\d{2})(\\d{2})",
        "$1 $2 $3 $4",
        ["[235-7]"],
      ]],
      0,
      0,
      0,
      0,
      0,
      "[02-689]|7[0-8]",
    ],
    NP: ["977", "00", "(?:1\\d|9)\\d{9}|[1-9]\\d{7}", [8, 10, 11], [[
      "(\\d)(\\d{7})",
      "$1-$2",
      ["1[2-6]"],
      "0$1",
    ], [
      "(\\d{2})(\\d{6})",
      "$1-$2",
      ["1[01]|[2-8]|9(?:[1-579]|6[2-6])"],
      "0$1",
    ], ["(\\d{3})(\\d{7})", "$1-$2", ["9"]]], "0"],
    NR: ["674", "00", "(?:444|(?:55|8\\d)\\d|666)\\d{4}", [7], [[
      "(\\d{3})(\\d{4})",
      "$1 $2",
      ["[4-68]"],
    ]]],
    NU: ["683", "00", "(?:[47]|888\\d)\\d{3}", [4, 7], [[
      "(\\d{3})(\\d{4})",
      "$1 $2",
      ["8"],
    ]]],
    NZ: [
      "64",
      "0(?:0|161)",
      "[29]\\d{7,9}|50\\d{5}(?:\\d{2,3})?|6[0-35-9]\\d{6}|7\\d{7,8}|8\\d{4,9}|(?:11\\d|[34])\\d{7}",
      [5, 6, 7, 8, 9, 10],
      [
        ["(\\d{2})(\\d{3,8})", "$1 $2", ["8[1-579]"], "0$1"],
        ["(\\d{3})(\\d{2})(\\d{2,3})", "$1 $2 $3", [
          "50[036-8]|[89]0",
          "50(?:[0367]|88)|[89]0",
        ], "0$1"],
        [
          "(\\d)(\\d{3})(\\d{4})",
          "$1-$2 $3",
          ["24|[346]|7[2-57-9]|9[2-9]"],
          "0$1",
        ],
        [
          "(\\d{3})(\\d{3})(\\d{3,4})",
          "$1 $2 $3",
          ["2(?:10|74)|[59]|80"],
          "0$1",
        ],
        ["(\\d{2})(\\d{3,4})(\\d{4})", "$1 $2 $3", ["1|2[028]"], "0$1"],
        ["(\\d{2})(\\d{3})(\\d{3,5})", "$1 $2 $3", [
          "2(?:[169]|7[0-35-9])|7|86",
        ], "0$1"],
      ],
      "0",
      0,
      0,
      0,
      0,
      0,
      0,
      "00",
    ],
    OM: ["968", "00", "(?:1505|[279]\\d{3}|500)\\d{4}|800\\d{5,6}", [7, 8, 9], [
      ["(\\d{3})(\\d{4,6})", "$1 $2", ["[58]"]],
      ["(\\d{2})(\\d{6})", "$1 $2", ["2"]],
      ["(\\d{4})(\\d{4})", "$1 $2", ["[179]"]],
    ]],
    PA: ["507", "00", "8\\d{9}|[68]\\d{7}|[1-57-9]\\d{6}", [7, 8, 10], [
      ["(\\d{3})(\\d{4})", "$1-$2", ["[1-57-9]"]],
      ["(\\d{4})(\\d{4})", "$1-$2", ["[68]"]],
      ["(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3", ["8"]],
    ]],
    PE: [
      "51",
      "19(?:1[124]|77|90)00",
      "(?:[14-8]|9\\d)\\d{7}",
      [8, 9],
      [
        ["(\\d{3})(\\d{5})", "$1 $2", ["80"], "(0$1)"],
        ["(\\d)(\\d{7})", "$1 $2", ["1"], "(0$1)"],
        ["(\\d{2})(\\d{6})", "$1 $2", ["[4-8]"], "(0$1)"],
        ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["9"]],
      ],
      "0",
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      " Anexo ",
    ],
    PF: ["689", "00", "4\\d{5}(?:\\d{2})?|8\\d{7,8}", [6, 8, 9], [
      ["(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3", ["44"]],
      ["(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["4|8[7-9]"]],
      ["(\\d{3})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["8"]],
    ]],
    PG: [
      "675",
      "00|140[1-3]",
      "(?:180|[78]\\d{3})\\d{4}|(?:[2-589]\\d|64)\\d{5}",
      [7, 8],
      [["(\\d{3})(\\d{4})", "$1 $2", ["18|[2-69]|85"]], [
        "(\\d{4})(\\d{4})",
        "$1 $2",
        ["[78]"],
      ]],
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      "00",
    ],
    PH: [
      "63",
      "00",
      "1800\\d{7,9}|(?:2|[89]\\d{4})\\d{5}|[2-8]\\d{8}|[28]\\d{7}",
      [6, 8, 9, 10, 11, 12, 13],
      [
        ["(\\d)(\\d{5})", "$1 $2", ["2"], "(0$1)"],
        ["(\\d)(\\d{3})(\\d{4})", "$1 $2 $3", ["2"], "(0$1)"],
        ["(\\d{4})(\\d{4,6})", "$1 $2", [
          "3(?:23|39|46)|4(?:2[3-6]|[35]9|4[26]|76)|544|88[245]|(?:52|64|86)2",
          "3(?:230|397|461)|4(?:2(?:35|[46]4|51)|396|4(?:22|63)|59[347]|76[15])|5(?:221|446)|642[23]|8(?:622|8(?:[24]2|5[13]))",
        ], "(0$1)"],
        ["(\\d{5})(\\d{4})", "$1 $2", [
          "346|4(?:27|9[35])|883",
          "3469|4(?:279|9(?:30|56))|8834",
        ], "(0$1)"],
        ["(\\d)(\\d{4})(\\d{4})", "$1 $2 $3", ["2"], "(0$1)"],
        ["(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["[3-7]|8[2-8]"], "(0$1)"],
        ["(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3", ["[89]"], "0$1"],
        ["(\\d{4})(\\d{3})(\\d{4})", "$1 $2 $3", ["1"]],
        ["(\\d{4})(\\d{1,2})(\\d{3})(\\d{4})", "$1 $2 $3 $4", ["1"]],
      ],
      "0",
    ],
    PK: [
      "92",
      "00",
      "122\\d{6}|[24-8]\\d{10,11}|9(?:[013-9]\\d{8,10}|2(?:[01]\\d\\d|2(?:[06-8]\\d|1[01]))\\d{7})|(?:[2-8]\\d{3}|92(?:[0-7]\\d|8[1-9]))\\d{6}|[24-9]\\d{8}|[89]\\d{7}",
      [8, 9, 10, 11, 12],
      [
        ["(\\d{3})(\\d{3})(\\d{2,7})", "$1 $2 $3", ["[89]0"], "0$1"],
        ["(\\d{4})(\\d{5})", "$1 $2", ["1"]],
        ["(\\d{3})(\\d{6,7})", "$1 $2", [
          "2(?:3[2358]|4[2-4]|9[2-8])|45[3479]|54[2-467]|60[468]|72[236]|8(?:2[2-689]|3[23578]|4[3478]|5[2356])|9(?:2[2-8]|3[27-9]|4[2-6]|6[3569]|9[25-8])",
          "9(?:2[3-8]|98)|(?:2(?:3[2358]|4[2-4]|9[2-8])|45[3479]|54[2-467]|60[468]|72[236]|8(?:2[2-689]|3[23578]|4[3478]|5[2356])|9(?:22|3[27-9]|4[2-6]|6[3569]|9[25-7]))[2-9]",
        ], "(0$1)"],
        ["(\\d{2})(\\d{7,8})", "$1 $2", [
          "(?:2[125]|4[0-246-9]|5[1-35-7]|6[1-8]|7[14]|8[16]|91)[2-9]",
        ], "(0$1)"],
        ["(\\d{5})(\\d{5})", "$1 $2", ["58"], "(0$1)"],
        ["(\\d{3})(\\d{7})", "$1 $2", ["3"], "0$1"],
        ["(\\d{2})(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3 $4", [
          "2[125]|4[0-246-9]|5[1-35-7]|6[1-8]|7[14]|8[16]|91",
        ], "(0$1)"],
        [
          "(\\d{3})(\\d{3})(\\d{3})(\\d{3})",
          "$1 $2 $3 $4",
          ["[24-9]"],
          "(0$1)",
        ],
      ],
      "0",
    ],
    PL: ["48", "00", "6\\d{5}(?:\\d{2})?|8\\d{9}|[1-9]\\d{6}(?:\\d{2})?", [
      6,
      7,
      8,
      9,
      10,
    ], [
      ["(\\d{5})", "$1", ["19"]],
      ["(\\d{3})(\\d{3})", "$1 $2", ["11|64"]],
      ["(\\d{2})(\\d{2})(\\d{3})", "$1 $2 $3", [
        "(?:1[2-8]|2[2-69]|3[2-4]|4[1-468]|5[24-689]|6[1-3578]|7[14-7]|8[1-79]|9[145])1",
        "(?:1[2-8]|2[2-69]|3[2-4]|4[1-468]|5[24-689]|6[1-3578]|7[14-7]|8[1-79]|9[145])19",
      ]],
      ["(\\d{3})(\\d{2})(\\d{2,3})", "$1 $2 $3", ["64"]],
      ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", [
        "39|45|5[0137]|6[0469]|7[02389]|8(?:0[14]|8)",
      ]],
      ["(\\d{2})(\\d{3})(\\d{2})(\\d{2})", "$1 $2 $3 $4", [
        "1[2-8]|[2-7]|8[1-79]|9[145]",
      ]],
      ["(\\d{3})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["8"]],
    ]],
    PM: ["508", "00", "(?:[45]|80\\d\\d)\\d{5}", [6, 9], [[
      "(\\d{2})(\\d{2})(\\d{2})",
      "$1 $2 $3",
      ["[45]"],
      "0$1",
    ], ["(\\d{3})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["8"], "0$1"]], "0"],
    PR: [
      "1",
      "011",
      "(?:[589]\\d\\d|787)\\d{7}",
      [10],
      0,
      "1",
      0,
      0,
      0,
      0,
      "787|939",
    ],
    PS: ["970", "00", "[2489]2\\d{6}|(?:1\\d|5)\\d{8}", [8, 9, 10], [
      ["(\\d)(\\d{3})(\\d{4})", "$1 $2 $3", ["[2489]"], "0$1"],
      ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["5"], "0$1"],
      ["(\\d{4})(\\d{3})(\\d{3})", "$1 $2 $3", ["1"]],
    ], "0"],
    PT: ["351", "00", "1693\\d{5}|(?:[26-9]\\d|30)\\d{7}", [9], [[
      "(\\d{2})(\\d{3})(\\d{4})",
      "$1 $2 $3",
      ["2[12]"],
    ], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["16|[236-9]"]]]],
    PW: ["680", "01[12]", "(?:[24-8]\\d\\d|345|900)\\d{4}", [7], [[
      "(\\d{3})(\\d{4})",
      "$1 $2",
      ["[2-9]"],
    ]]],
    PY: ["595", "00", "59\\d{4,6}|9\\d{5,10}|(?:[2-46-8]\\d|5[0-8])\\d{4,7}", [
      6,
      7,
      8,
      9,
      10,
      11,
    ], [
      ["(\\d{3})(\\d{3,6})", "$1 $2", ["[2-9]0"], "0$1"],
      [
        "(\\d{2})(\\d{5})",
        "$1 $2",
        ["[26]1|3[289]|4[1246-8]|7[1-3]|8[1-36]"],
        "(0$1)",
      ],
      ["(\\d{3})(\\d{4,5})", "$1 $2", [
        "2[279]|3[13-5]|4[359]|5|6(?:[34]|7[1-46-8])|7[46-8]|85",
      ], "(0$1)"],
      ["(\\d{2})(\\d{3})(\\d{3,4})", "$1 $2 $3", [
        "2[14-68]|3[26-9]|4[1246-8]|6(?:1|75)|7[1-35]|8[1-36]",
      ], "(0$1)"],
      ["(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["87"]],
      ["(\\d{3})(\\d{6})", "$1 $2", ["9(?:[5-79]|8[1-6])"], "0$1"],
      ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["[2-8]"], "0$1"],
      ["(\\d{4})(\\d{3})(\\d{4})", "$1 $2 $3", ["9"]],
    ], "0"],
    QA: ["974", "00", "[2-7]\\d{7}|(?:2\\d\\d|800)\\d{4}", [7, 8], [[
      "(\\d{3})(\\d{4})",
      "$1 $2",
      ["2[126]|8"],
    ], ["(\\d{4})(\\d{4})", "$1 $2", ["[2-7]"]]]],
    RE: [
      "262",
      "00",
      "9769\\d{5}|(?:26|[68]\\d)\\d{7}",
      [9],
      [["(\\d{3})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[2689]"], "0$1"]],
      "0",
      0,
      0,
      0,
      0,
      "26[23]|69|[89]",
    ],
    RO: [
      "40",
      "00",
      "(?:[237]\\d|[89]0)\\d{7}|[23]\\d{5}",
      [6, 9],
      [
        ["(\\d{3})(\\d{3})", "$1 $2", ["2[3-6]", "2[3-6]\\d9"], "0$1"],
        ["(\\d{2})(\\d{4})", "$1 $2", ["219|31"], "0$1"],
        ["(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["[23]1"], "0$1"],
        ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["[237-9]"], "0$1"],
      ],
      "0",
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      " int ",
    ],
    RS: [
      "381",
      "00",
      "38[02-9]\\d{6,9}|6\\d{7,9}|90\\d{4,8}|38\\d{5,6}|(?:7\\d\\d|800)\\d{3,9}|(?:[12]\\d|3[0-79])\\d{5,10}",
      [6, 7, 8, 9, 10, 11, 12],
      [["(\\d{3})(\\d{3,9})", "$1 $2", ["(?:2[389]|39)0|[7-9]"], "0$1"], [
        "(\\d{2})(\\d{5,10})",
        "$1 $2",
        ["[1-36]"],
        "0$1",
      ]],
      "0",
    ],
    RU: [
      "7",
      "810",
      "[347-9]\\d{9}",
      [10],
      [
        [
          "(\\d{4})(\\d{2})(\\d{2})(\\d{2})",
          "$1 $2 $3 $4",
          [
            "7(?:1[0-8]|2[1-9])",
            "7(?:1(?:[0-6]2|7|8[27])|2(?:1[23]|[2-9]2))",
            "7(?:1(?:[0-6]2|7|8[27])|2(?:13[03-69]|62[013-9]))|72[1-57-9]2",
          ],
          "8 ($1)",
          1,
        ],
        [
          "(\\d{5})(\\d)(\\d{2})(\\d{2})",
          "$1 $2 $3 $4",
          [
            "7(?:1[0-68]|2[1-9])",
            "7(?:1(?:[06][3-6]|[18]|2[35]|[3-5][3-5])|2(?:[13][3-5]|[24-689]|7[457]))",
            "7(?:1(?:0(?:[356]|4[023])|[18]|2(?:3[013-9]|5)|3[45]|43[013-79]|5(?:3[1-8]|4[1-7]|5)|6(?:3[0-35-9]|[4-6]))|2(?:1(?:3[178]|[45])|[24-689]|3[35]|7[457]))|7(?:14|23)4[0-8]|71(?:33|45)[1-79]",
          ],
          "8 ($1)",
          1,
        ],
        ["(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3", ["7"], "8 ($1)", 1],
        [
          "(\\d{3})(\\d{3})(\\d{2})(\\d{2})",
          "$1 $2-$3-$4",
          ["[3489]"],
          "8 ($1)",
          1,
        ],
      ],
      "8",
      0,
      0,
      0,
      0,
      "3[04-689]|[489]",
      0,
      "8~10",
    ],
    RW: ["250", "00", "(?:06|[27]\\d\\d|[89]00)\\d{6}", [8, 9], [
      ["(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["0"]],
      ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["[7-9]"], "0$1"],
      ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["2"]],
    ], "0"],
    SA: ["966", "00", "92\\d{7}|(?:[15]|8\\d)\\d{8}", [9, 10], [
      ["(\\d{4})(\\d{5})", "$1 $2", ["9"]],
      ["(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["1"], "0$1"],
      ["(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["5"], "0$1"],
      ["(\\d{3})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["81"], "0$1"],
      ["(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3", ["8"]],
    ], "0"],
    SB: ["677", "0[01]", "(?:[1-6]|[7-9]\\d\\d)\\d{4}", [5, 7], [[
      "(\\d{2})(\\d{5})",
      "$1 $2",
      ["7|8[4-9]|9(?:[1-8]|9[0-8])"],
    ]]],
    SC: [
      "248",
      "010|0[0-2]",
      "8000\\d{3}|(?:[249]\\d|64)\\d{5}",
      [7],
      [["(\\d)(\\d{3})(\\d{3})", "$1 $2 $3", ["[246]|9[57]"]]],
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      "00",
    ],
    SD: ["249", "00", "[19]\\d{8}", [9], [[
      "(\\d{2})(\\d{3})(\\d{4})",
      "$1 $2 $3",
      ["[19]"],
      "0$1",
    ]], "0"],
    SE: [
      "46",
      "00",
      "(?:[26]\\d\\d|9)\\d{9}|[1-9]\\d{8}|[1-689]\\d{7}|[1-4689]\\d{6}|2\\d{5}",
      [6, 7, 8, 9, 10],
      [
        [
          "(\\d{2})(\\d{2,3})(\\d{2})",
          "$1-$2 $3",
          ["20"],
          "0$1",
          0,
          "$1 $2 $3",
        ],
        ["(\\d{3})(\\d{4})", "$1-$2", ["9(?:00|39|44)"], "0$1", 0, "$1 $2"],
        [
          "(\\d{2})(\\d{3})(\\d{2})",
          "$1-$2 $3",
          ["[12][136]|3[356]|4[0246]|6[03]|90[1-9]"],
          "0$1",
          0,
          "$1 $2 $3",
        ],
        [
          "(\\d)(\\d{2,3})(\\d{2})(\\d{2})",
          "$1-$2 $3 $4",
          ["8"],
          "0$1",
          0,
          "$1 $2 $3 $4",
        ],
        [
          "(\\d{3})(\\d{2,3})(\\d{2})",
          "$1-$2 $3",
          ["1[2457]|2(?:[247-9]|5[0138])|3[0247-9]|4[1357-9]|5[0-35-9]|6(?:[125689]|4[02-57]|7[0-2])|9(?:[125-8]|3[02-5]|4[0-3])"],
          "0$1",
          0,
          "$1 $2 $3",
        ],
        [
          "(\\d{3})(\\d{2,3})(\\d{3})",
          "$1-$2 $3",
          ["9(?:00|39|44)"],
          "0$1",
          0,
          "$1 $2 $3",
        ],
        [
          "(\\d{2})(\\d{2,3})(\\d{2})(\\d{2})",
          "$1-$2 $3 $4",
          ["1[13689]|2[0136]|3[1356]|4[0246]|54|6[03]|90[1-9]"],
          "0$1",
          0,
          "$1 $2 $3 $4",
        ],
        [
          "(\\d{2})(\\d{3})(\\d{2})(\\d{2})",
          "$1-$2 $3 $4",
          ["10|7"],
          "0$1",
          0,
          "$1 $2 $3 $4",
        ],
        [
          "(\\d)(\\d{3})(\\d{3})(\\d{2})",
          "$1-$2 $3 $4",
          ["8"],
          "0$1",
          0,
          "$1 $2 $3 $4",
        ],
        [
          "(\\d{3})(\\d{2})(\\d{2})(\\d{2})",
          "$1-$2 $3 $4",
          ["[13-5]|2(?:[247-9]|5[0138])|6(?:[124-689]|7[0-2])|9(?:[125-8]|3[02-5]|4[0-3])"],
          "0$1",
          0,
          "$1 $2 $3 $4",
        ],
        [
          "(\\d{3})(\\d{2})(\\d{2})(\\d{3})",
          "$1-$2 $3 $4",
          ["9"],
          "0$1",
          0,
          "$1 $2 $3 $4",
        ],
        [
          "(\\d{3})(\\d{2})(\\d{3})(\\d{2})(\\d{2})",
          "$1-$2 $3 $4 $5",
          ["[26]"],
          "0$1",
          0,
          "$1 $2 $3 $4 $5",
        ],
      ],
      "0",
    ],
    SG: ["65", "0[0-3]\\d", "(?:(?:1\\d|8)\\d\\d|7000)\\d{7}|[3689]\\d{7}", [
      8,
      10,
      11,
    ], [
      ["(\\d{4})(\\d{4})", "$1 $2", ["[369]|8(?:0[1-4]|[1-9])"]],
      ["(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3", ["8"]],
      ["(\\d{4})(\\d{4})(\\d{3})", "$1 $2 $3", ["7"]],
      ["(\\d{4})(\\d{3})(\\d{4})", "$1 $2 $3", ["1"]],
    ]],
    SH: [
      "290",
      "00",
      "(?:[256]\\d|8)\\d{3}",
      [4, 5],
      0,
      0,
      0,
      0,
      0,
      0,
      "[256]",
    ],
    SI: [
      "386",
      "00|10(?:22|66|88|99)",
      "[1-7]\\d{7}|8\\d{4,7}|90\\d{4,6}",
      [5, 6, 7, 8],
      [["(\\d{2})(\\d{3,6})", "$1 $2", ["8[09]|9"], "0$1"], [
        "(\\d{3})(\\d{5})",
        "$1 $2",
        ["59|8"],
        "0$1",
      ], [
        "(\\d{2})(\\d{3})(\\d{3})",
        "$1 $2 $3",
        ["[37][01]|4[0139]|51|6"],
        "0$1",
      ], ["(\\d)(\\d{3})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[1-57]"], "(0$1)"]],
      "0",
      0,
      0,
      0,
      0,
      0,
      0,
      "00",
    ],
    SJ: [
      "47",
      "00",
      "0\\d{4}|(?:[489]\\d|[57]9)\\d{6}",
      [5, 8],
      0,
      0,
      0,
      0,
      0,
      0,
      "79",
    ],
    SK: ["421", "00", "[2-689]\\d{8}|[2-59]\\d{6}|[2-5]\\d{5}", [6, 7, 9], [
      ["(\\d)(\\d{2})(\\d{3,4})", "$1 $2 $3", ["21"], "0$1"],
      ["(\\d{2})(\\d{2})(\\d{2,3})", "$1 $2 $3", [
        "[3-5][1-8]1",
        "[3-5][1-8]1[67]",
      ], "0$1"],
      ["(\\d)(\\d{3})(\\d{3})(\\d{2})", "$1/$2 $3 $4", ["2"], "0$1"],
      ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["[689]"], "0$1"],
      ["(\\d{2})(\\d{3})(\\d{2})(\\d{2})", "$1/$2 $3 $4", ["[3-5]"], "0$1"],
    ], "0"],
    SL: ["232", "00", "(?:[237-9]\\d|66)\\d{6}", [8], [[
      "(\\d{2})(\\d{6})",
      "$1 $2",
      ["[236-9]"],
      "(0$1)",
    ]], "0"],
    SM: [
      "378",
      "00",
      "(?:0549|[5-7]\\d)\\d{6}",
      [8, 10],
      [["(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[5-7]"]], [
        "(\\d{4})(\\d{6})",
        "$1 $2",
        ["0"],
      ]],
      0,
      0,
      "([89]\\d{5})$",
      "0549$1",
    ],
    SN: ["221", "00", "(?:[378]\\d{4}|93330)\\d{4}", [9], [[
      "(\\d{3})(\\d{2})(\\d{2})(\\d{2})",
      "$1 $2 $3 $4",
      ["8"],
    ], ["(\\d{2})(\\d{3})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[379]"]]]],
    SO: ["252", "00", "[346-9]\\d{8}|[12679]\\d{7}|[1-5]\\d{6}|[1348]\\d{5}", [
      6,
      7,
      8,
      9,
    ], [
      ["(\\d{2})(\\d{4})", "$1 $2", ["8[125]"]],
      ["(\\d{6})", "$1", ["[134]"]],
      ["(\\d)(\\d{6})", "$1 $2", ["[15]|2[0-79]|3[0-46-8]|4[0-7]"]],
      ["(\\d)(\\d{7})", "$1 $2", ["24|[67]"]],
      ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["[3478]|64|90"]],
      ["(\\d{2})(\\d{5,7})", "$1 $2", ["1|28|6[1-35-9]|9[2-9]"]],
    ], "0"],
    SR: ["597", "00", "(?:[2-5]|68|[78]\\d)\\d{5}", [6, 7], [
      ["(\\d{2})(\\d{2})(\\d{2})", "$1-$2-$3", ["56"]],
      ["(\\d{3})(\\d{3})", "$1-$2", ["[2-5]"]],
      ["(\\d{3})(\\d{4})", "$1-$2", ["[6-8]"]],
    ]],
    SS: ["211", "00", "[19]\\d{8}", [9], [[
      "(\\d{3})(\\d{3})(\\d{3})",
      "$1 $2 $3",
      ["[19]"],
      "0$1",
    ]], "0"],
    ST: ["239", "00", "(?:22|9\\d)\\d{5}", [7], [["(\\d{3})(\\d{4})", "$1 $2", [
      "[29]",
    ]]]],
    SV: ["503", "00", "[267]\\d{7}|[89]00\\d{4}(?:\\d{4})?", [7, 8, 11], [
      ["(\\d{3})(\\d{4})", "$1 $2", ["[89]"]],
      ["(\\d{4})(\\d{4})", "$1 $2", ["[267]"]],
      ["(\\d{3})(\\d{4})(\\d{4})", "$1 $2 $3", ["[89]"]],
    ]],
    SX: [
      "1",
      "011",
      "7215\\d{6}|(?:[58]\\d\\d|900)\\d{7}",
      [10],
      0,
      "1",
      0,
      "1|(5\\d{6})$",
      "721$1",
      0,
      "721",
    ],
    SY: ["963", "00", "[1-39]\\d{8}|[1-5]\\d{7}", [8, 9], [[
      "(\\d{2})(\\d{3})(\\d{3,4})",
      "$1 $2 $3",
      ["[1-5]"],
      "0$1",
      1,
    ], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["9"], "0$1", 1]], "0"],
    SZ: ["268", "00", "0800\\d{4}|(?:[237]\\d|900)\\d{6}", [8, 9], [[
      "(\\d{4})(\\d{4})",
      "$1 $2",
      ["[0237]"],
    ], ["(\\d{5})(\\d{4})", "$1 $2", ["9"]]]],
    TA: ["290", "00", "8\\d{3}", [4], 0, 0, 0, 0, 0, 0, "8"],
    TC: [
      "1",
      "011",
      "(?:[58]\\d\\d|649|900)\\d{7}",
      [10],
      0,
      "1",
      0,
      "1|([2-479]\\d{6})$",
      "649$1",
      0,
      "649",
    ],
    TD: [
      "235",
      "00|16",
      "(?:22|[69]\\d|77)\\d{6}",
      [8],
      [["(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[2679]"]]],
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      "00",
    ],
    TG: ["228", "00", "[279]\\d{7}", [8], [[
      "(\\d{2})(\\d{2})(\\d{2})(\\d{2})",
      "$1 $2 $3 $4",
      ["[279]"],
    ]]],
    TH: ["66", "00[1-9]", "1\\d{9}|[1689]\\d{8}|[1-57]\\d{7}", [8, 9, 10], [
      ["(\\d)(\\d{3})(\\d{4})", "$1 $2 $3", ["2"], "0$1"],
      ["(\\d{2})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["[13-9]"], "0$1"],
      ["(\\d{4})(\\d{3})(\\d{3})", "$1 $2 $3", ["1"]],
    ], "0"],
    TJ: [
      "992",
      "810",
      "(?:00|11|[2-57-9]\\d)\\d{7}",
      [9],
      [
        ["(\\d{6})(\\d)(\\d{2})", "$1 $2 $3", ["331", "3317"], 0, 1],
        ["(\\d{3})(\\d{2})(\\d{4})", "$1 $2 $3", ["[34]7|91[78]"], 0, 1],
        ["(\\d{4})(\\d)(\\d{4})", "$1 $2 $3", ["3[1-5]"], 0, 1],
        ["(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["[02-57-9]|11"], 0, 1],
      ],
      "8",
      0,
      0,
      0,
      0,
      0,
      0,
      "8~10",
    ],
    TK: ["690", "00", "[2-47]\\d{3,6}", [4, 5, 6, 7]],
    TL: ["670", "00", "7\\d{7}|(?:[2-47]\\d|[89]0)\\d{5}", [7, 8], [[
      "(\\d{3})(\\d{4})",
      "$1 $2",
      ["[2-489]|70"],
    ], ["(\\d{4})(\\d{4})", "$1 $2", ["7"]]]],
    TM: [
      "993",
      "810",
      "[1-6]\\d{7}",
      [8],
      [["(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2-$3-$4", ["12"], "(8 $1)"], [
        "(\\d{3})(\\d)(\\d{2})(\\d{2})",
        "$1 $2-$3-$4",
        ["[1-5]"],
        "(8 $1)",
      ], ["(\\d{2})(\\d{6})", "$1 $2", ["6"], "8 $1"]],
      "8",
      0,
      0,
      0,
      0,
      0,
      0,
      "8~10",
    ],
    TN: ["216", "00", "[2-57-9]\\d{7}", [8], [[
      "(\\d{2})(\\d{3})(\\d{3})",
      "$1 $2 $3",
      ["[2-57-9]"],
    ]]],
    TO: ["676", "00", "(?:0800|(?:[5-8]\\d\\d|999)\\d)\\d{3}|[2-8]\\d{4}", [
      5,
      7,
    ], [["(\\d{2})(\\d{3})", "$1-$2", ["[2-4]|50|6[09]|7[0-24-69]|8[05]"]], [
      "(\\d{4})(\\d{3})",
      "$1 $2",
      ["0"],
    ], ["(\\d{3})(\\d{4})", "$1 $2", ["[5-9]"]]]],
    TR: ["90", "00", "4\\d{6}|8\\d{11,12}|(?:[2-58]\\d\\d|900)\\d{7}", [
      7,
      10,
      12,
      13,
    ], [
      ["(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3", ["512|8[01589]|90"], "0$1", 1],
      [
        "(\\d{3})(\\d{3})(\\d{2})(\\d{2})",
        "$1 $2 $3 $4",
        ["5(?:[0-59]|61)", "5(?:[0-59]|616)", "5(?:[0-59]|6161)"],
        "0$1",
        1,
      ],
      [
        "(\\d{3})(\\d{3})(\\d{2})(\\d{2})",
        "$1 $2 $3 $4",
        ["[24][1-8]|3[1-9]"],
        "(0$1)",
        1,
      ],
      ["(\\d{3})(\\d{3})(\\d{6,7})", "$1 $2 $3", ["80"], "0$1", 1],
    ], "0"],
    TT: [
      "1",
      "011",
      "(?:[58]\\d\\d|900)\\d{7}",
      [10],
      0,
      "1",
      0,
      "1|([2-46-8]\\d{6})$",
      "868$1",
      0,
      "868",
    ],
    TV: ["688", "00", "(?:2|7\\d\\d|90)\\d{4}", [5, 6, 7], [
      ["(\\d{2})(\\d{3})", "$1 $2", ["2"]],
      ["(\\d{2})(\\d{4})", "$1 $2", ["90"]],
      ["(\\d{2})(\\d{5})", "$1 $2", ["7"]],
    ]],
    TW: [
      "886",
      "0(?:0[25-79]|19)",
      "[2-689]\\d{8}|7\\d{9,10}|[2-8]\\d{7}|2\\d{6}",
      [7, 8, 9, 10, 11],
      [
        ["(\\d{2})(\\d)(\\d{4})", "$1 $2 $3", ["202"], "0$1"],
        ["(\\d{2})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["[258]0"], "0$1"],
        ["(\\d)(\\d{3,4})(\\d{4})", "$1 $2 $3", [
          "[23568]|4(?:0[02-48]|[1-47-9])|7[1-9]",
          "[23568]|4(?:0[2-48]|[1-47-9])|(?:400|7)[1-9]",
        ], "0$1"],
        ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["[49]"], "0$1"],
        ["(\\d{2})(\\d{4})(\\d{4,5})", "$1 $2 $3", ["7"], "0$1"],
      ],
      "0",
      0,
      0,
      0,
      0,
      0,
      0,
      0,
      "#",
    ],
    TZ: ["255", "00[056]", "(?:[26-8]\\d|41|90)\\d{7}", [9], [
      ["(\\d{3})(\\d{2})(\\d{4})", "$1 $2 $3", ["[89]"], "0$1"],
      ["(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["[24]"], "0$1"],
      ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["[67]"], "0$1"],
    ], "0"],
    UA: [
      "380",
      "00",
      "[89]\\d{9}|[3-9]\\d{8}",
      [9, 10],
      [
        ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", [
          "6[12][29]|(?:3[1-8]|4[136-8]|5[12457]|6[49])2|(?:56|65)[24]",
          "6[12][29]|(?:35|4[1378]|5[12457]|6[49])2|(?:56|65)[24]|(?:3[1-46-8]|46)2[013-9]",
        ], "0$1"],
        ["(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", [
          "4[45][0-5]|5(?:0|6[37])|6(?:[12][018]|[36-8])|7|89|9[1-9]|(?:48|57)[0137-9]",
          "4[45][0-5]|5(?:0|6(?:3[14-7]|7))|6(?:[12][018]|[36-8])|7|89|9[1-9]|(?:48|57)[0137-9]",
        ], "0$1"],
        ["(\\d{4})(\\d{5})", "$1 $2", ["[3-6]"], "0$1"],
        ["(\\d{3})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["[89]"], "0$1"],
      ],
      "0",
      0,
      0,
      0,
      0,
      0,
      0,
      "0~0",
    ],
    UG: ["256", "00[057]", "800\\d{6}|(?:[29]0|[347]\\d)\\d{7}", [9], [
      ["(\\d{4})(\\d{5})", "$1 $2", ["202", "2024"], "0$1"],
      ["(\\d{3})(\\d{6})", "$1 $2", ["[27-9]|4(?:6[45]|[7-9])"], "0$1"],
      ["(\\d{2})(\\d{7})", "$1 $2", ["[34]"], "0$1"],
    ], "0"],
    US: [
      "1",
      "011",
      "[2-9]\\d{9}",
      [10],
      [["(\\d{3})(\\d{3})(\\d{4})", "($1) $2-$3", ["[2-9]"], 0, 1, "$1-$2-$3"]],
      "1",
      0,
      0,
      0,
      0,
      0,
      [
        ["(?:2(?:0[1-35-9]|1[02-9]|2[03-589]|3[149]|4[08]|5[1-46]|6[0279]|7[0269]|8[13])|3(?:0[1-57-9]|1[02-9]|2[01356]|3[0-24679]|4[167]|5[12]|6[014]|8[056])|4(?:0[124-9]|1[02-579]|2[3-5]|3[0245]|4[023578]|58|6[39]|7[0589]|8[04])|5(?:0[1-57-9]|1[0235-8]|20|3[0149]|4[01]|5[19]|6[1-47]|7[0-5]|8[056])|6(?:0[1-35-9]|1[024-9]|2[03689]|[34][016]|5[0179]|6[0-279]|78|8[0-29])|7(?:0[1-46-8]|1[2-9]|2[04-7]|3[1247]|4[037]|5[47]|6[02359]|7[02-59]|8[156])|8(?:0[1-68]|1[02-8]|2[08]|3[0-289]|4[03578]|5[046-9]|6[02-5]|7[028])|9(?:0[1346-9]|1[02-9]|2[0589]|3[0146-8]|4[01579]|5[12469]|7[0-389]|8[04-69]))[2-9]\\d{6}"],
        [""],
        ["8(?:00|33|44|55|66|77|88)[2-9]\\d{6}"],
        ["900[2-9]\\d{6}"],
        ["52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|5(?:00|2[12]|33|44|66|77|88)[2-9]\\d{6}"],
      ],
    ],
    UY: [
      "598",
      "0(?:0|1[3-9]\\d)",
      "4\\d{9}|[249]\\d{7}|(?:[49]\\d|80)\\d{5}",
      [7, 8, 10],
      [
        ["(\\d{3})(\\d{4})", "$1 $2", ["405|8|90"], "0$1"],
        ["(\\d{2})(\\d{3})(\\d{3})", "$1 $2 $3", ["9"], "0$1"],
        ["(\\d{4})(\\d{4})", "$1 $2", ["[24]"]],
        ["(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3", ["4"], "0$1"],
      ],
      "0",
      0,
      0,
      0,
      0,
      0,
      0,
      "00",
      " int. ",
    ],
    UZ: [
      "998",
      "810",
      "(?:33|55|[679]\\d|88)\\d{7}",
      [9],
      [["(\\d{2})(\\d{3})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[35-9]"], "8 $1"]],
      "8",
      0,
      0,
      0,
      0,
      0,
      0,
      "8~10",
    ],
    VA: [
      "39",
      "00",
      "0\\d{5,10}|3[0-8]\\d{7,10}|55\\d{8}|8\\d{5}(?:\\d{2,4})?|(?:1\\d|39)\\d{7,8}",
      [6, 7, 8, 9, 10, 11],
      0,
      0,
      0,
      0,
      0,
      0,
      "06698",
    ],
    VC: [
      "1",
      "011",
      "(?:[58]\\d\\d|784|900)\\d{7}",
      [10],
      0,
      "1",
      0,
      "1|([2-7]\\d{6})$",
      "784$1",
      0,
      "784",
    ],
    VE: ["58", "00", "[68]00\\d{7}|(?:[24]\\d|[59]0)\\d{8}", [10], [[
      "(\\d{3})(\\d{7})",
      "$1-$2",
      ["[24-689]"],
      "0$1",
    ]], "0"],
    VG: [
      "1",
      "011",
      "(?:284|[58]\\d\\d|900)\\d{7}",
      [10],
      0,
      "1",
      0,
      "1|([2-578]\\d{6})$",
      "284$1",
      0,
      "284",
    ],
    VI: [
      "1",
      "011",
      "[58]\\d{9}|(?:34|90)0\\d{7}",
      [10],
      0,
      "1",
      0,
      "1|([2-9]\\d{6})$",
      "340$1",
      0,
      "340",
    ],
    VN: ["84", "00", "[12]\\d{9}|[135-9]\\d{8}|[16]\\d{7}|[16-8]\\d{6}", [
      7,
      8,
      9,
      10,
    ], [
      ["(\\d{2})(\\d{5})", "$1 $2", ["80"], "0$1", 1],
      ["(\\d{4})(\\d{4,6})", "$1 $2", ["1"], 0, 1],
      ["(\\d{2})(\\d{3})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[69]"], "0$1", 1],
      ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["[3578]"], "0$1", 1],
      ["(\\d{2})(\\d{4})(\\d{4})", "$1 $2 $3", ["2[48]"], "0$1", 1],
      ["(\\d{3})(\\d{4})(\\d{3})", "$1 $2 $3", ["2"], "0$1", 1],
    ], "0"],
    VU: ["678", "00", "[57-9]\\d{6}|(?:[238]\\d|48)\\d{3}", [5, 7], [[
      "(\\d{3})(\\d{4})",
      "$1 $2",
      ["[57-9]"],
    ]]],
    WF: ["681", "00", "(?:40|72)\\d{4}|8\\d{5}(?:\\d{3})?", [6, 9], [[
      "(\\d{2})(\\d{2})(\\d{2})",
      "$1 $2 $3",
      ["[478]"],
    ], ["(\\d{3})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["8"]]]],
    WS: ["685", "0", "(?:[2-6]|8\\d{5})\\d{4}|[78]\\d{6}|[68]\\d{5}", [
      5,
      6,
      7,
      10,
    ], [["(\\d{5})", "$1", ["[2-5]|6[1-9]"]], ["(\\d{3})(\\d{3,7})", "$1 $2", [
      "[68]",
    ]], ["(\\d{2})(\\d{5})", "$1 $2", ["7"]]]],
    XK: ["383", "00", "[23]\\d{7,8}|(?:4\\d\\d|[89]00)\\d{5}", [8, 9], [
      ["(\\d{3})(\\d{5})", "$1 $2", ["[89]"], "0$1"],
      ["(\\d{2})(\\d{3})(\\d{3})", "$1 $2 $3", ["[2-4]"], "0$1"],
      ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["[23]"], "0$1"],
    ], "0"],
    YE: ["967", "00", "(?:1|7\\d)\\d{7}|[1-7]\\d{6}", [7, 8, 9], [[
      "(\\d)(\\d{3})(\\d{3,4})",
      "$1 $2 $3",
      ["[1-6]|7[24-68]"],
      "0$1",
    ], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["7"], "0$1"]], "0"],
    YT: [
      "262",
      "00",
      "80\\d{7}|(?:26|63)9\\d{6}",
      [9],
      0,
      "0",
      0,
      0,
      0,
      0,
      "269|63",
    ],
    ZA: ["27", "00", "[1-79]\\d{8}|8\\d{4,9}", [5, 6, 7, 8, 9, 10], [
      ["(\\d{2})(\\d{3,4})", "$1 $2", ["8[1-4]"], "0$1"],
      ["(\\d{2})(\\d{3})(\\d{2,3})", "$1 $2 $3", ["8[1-4]"], "0$1"],
      ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["860"], "0$1"],
      ["(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["[1-9]"], "0$1"],
      ["(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3", ["8"], "0$1"],
    ], "0"],
    ZM: ["260", "00", "(?:63|80)0\\d{6}|(?:21|[79]\\d)\\d{7}", [9], [[
      "(\\d{3})(\\d{3})(\\d{3})",
      "$1 $2 $3",
      ["[28]"],
      "0$1",
    ], ["(\\d{2})(\\d{7})", "$1 $2", ["[79]"], "0$1"]], "0"],
    ZW: [
      "263",
      "00",
      "2(?:[0-57-9]\\d{6,8}|6[0-24-9]\\d{6,7})|[38]\\d{9}|[35-8]\\d{8}|[3-6]\\d{7}|[1-689]\\d{6}|[1-3569]\\d{5}|[1356]\\d{4}",
      [5, 6, 7, 8, 9, 10],
      [
        ["(\\d{3})(\\d{3,5})", "$1 $2", [
          "2(?:0[45]|2[278]|[49]8)|3(?:[09]8|17)|6(?:[29]8|37|75)|[23][78]|(?:33|5[15]|6[68])[78]",
        ], "0$1"],
        ["(\\d)(\\d{3})(\\d{2,4})", "$1 $2 $3", ["[49]"], "0$1"],
        ["(\\d{3})(\\d{4})", "$1 $2", ["80"], "0$1"],
        ["(\\d{2})(\\d{7})", "$1 $2", [
          "24|8[13-59]|(?:2[05-79]|39|5[45]|6[15-8])2",
          "2(?:02[014]|4|[56]20|[79]2)|392|5(?:42|525)|6(?:[16-8]21|52[013])|8[13-59]",
        ], "(0$1)"],
        ["(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["7"], "0$1"],
        ["(\\d{3})(\\d{3})(\\d{3,4})", "$1 $2 $3", [
          "2(?:1[39]|2[0157]|[378]|[56][14])|3(?:12|29)",
          "2(?:1[39]|2[0157]|[378]|[56][14])|3(?:123|29)",
        ], "0$1"],
        ["(\\d{4})(\\d{6})", "$1 $2", ["8"], "0$1"],
        ["(\\d{2})(\\d{3,5})", "$1 $2", [
          "1|2(?:0[0-36-9]|12|29|[56])|3(?:1[0-689]|[24-6])|5(?:[0236-9]|1[2-4])|6(?:[013-59]|7[0-46-9])|(?:33|55|6[68])[0-69]|(?:29|3[09]|62)[0-79]",
        ], "0$1"],
        ["(\\d{2})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["29[013-9]|39|54"], "0$1"],
        ["(\\d{4})(\\d{3,5})", "$1 $2", ["(?:25|54)8", "258|5483"], "0$1"],
      ],
      "0",
    ],
  },
  nonGeographic: {
    "800": [
      "800",
      0,
      "[1-9]\\d{7}",
      [8],
      [["(\\d{4})(\\d{4})", "$1 $2", ["[1-9]"]]],
      0,
      0,
      0,
      0,
      0,
      0,
      [0, 0, ["[1-9]\\d{7}"]],
    ],
    "808": [
      "808",
      0,
      "[1-9]\\d{7}",
      [8],
      [["(\\d{4})(\\d{4})", "$1 $2", ["[1-9]"]]],
      0,
      0,
      0,
      0,
      0,
      0,
      [0, 0, 0, 0, 0, 0, 0, 0, 0, ["[1-9]\\d{7}"]],
    ],
    "870": [
      "870",
      0,
      "7\\d{11}|[35-7]\\d{8}",
      [9, 12],
      [["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["[35-7]"]]],
      0,
      0,
      0,
      0,
      0,
      0,
      [0, ["(?:[356]|774[45])\\d{8}|7[6-8]\\d{7}"]],
    ],
    "878": [
      "878",
      0,
      "10\\d{10}",
      [12],
      [["(\\d{2})(\\d{5})(\\d{5})", "$1 $2 $3", ["1"]]],
      0,
      0,
      0,
      0,
      0,
      0,
      [0, 0, 0, 0, 0, 0, 0, 0, ["10\\d{10}"]],
    ],
    "881": [
      "881",
      0,
      "[0-36-9]\\d{8}",
      [9],
      [["(\\d)(\\d{3})(\\d{5})", "$1 $2 $3", ["[0-36-9]"]]],
      0,
      0,
      0,
      0,
      0,
      0,
      [0, ["[0-36-9]\\d{8}"]],
    ],
    "882": [
      "882",
      0,
      "[13]\\d{6}(?:\\d{2,5})?|285\\d{9}|(?:[19]\\d|49)\\d{6}",
      [7, 8, 9, 10, 11, 12],
      [
        ["(\\d{2})(\\d{5})", "$1 $2", ["16|342"]],
        ["(\\d{2})(\\d{6})", "$1 $2", ["4"]],
        ["(\\d{2})(\\d{2})(\\d{4})", "$1 $2 $3", ["[19]"]],
        ["(\\d{2})(\\d{4})(\\d{3})", "$1 $2 $3", ["3[23]"]],
        ["(\\d{2})(\\d{3,4})(\\d{4})", "$1 $2 $3", ["1"]],
        ["(\\d{2})(\\d{4})(\\d{4})", "$1 $2 $3", ["34[57]"]],
        ["(\\d{3})(\\d{4})(\\d{4})", "$1 $2 $3", ["34"]],
        ["(\\d{2})(\\d{4,5})(\\d{5})", "$1 $2 $3", ["[1-3]"]],
      ],
      0,
      0,
      0,
      0,
      0,
      0,
      [
        0,
        ["342\\d{4}|(?:337|49)\\d{6}|3(?:2|47|7\\d{3})\\d{7}", [
          7,
          8,
          9,
          10,
          12,
        ]],
        0,
        0,
        0,
        0,
        0,
        0,
        ["1(?:3(?:0[0347]|[13][0139]|2[035]|4[013568]|6[0459]|7[06]|8[15-8]|9[0689])\\d{4}|6\\d{5,10})|(?:(?:285\\d\\d|3(?:45|[69]\\d{3}))\\d|9[89])\\d{6}"],
      ],
    ],
    "883": [
      "883",
      0,
      "210\\d{7}|51\\d{7}(?:\\d{3})?",
      [9, 10, 12],
      [
        ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["510"]],
        ["(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3", ["2"]],
        ["(\\d{3})(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3 $4", ["510"]],
        ["(\\d{4})(\\d{4})(\\d{4})", "$1 $2 $3", ["5"]],
      ],
      0,
      0,
      0,
      0,
      0,
      0,
      [0, 0, 0, 0, 0, 0, 0, 0, ["(?:210|51[013]0\\d)\\d{7}|5100\\d{5}"]],
    ],
    "888": [
      "888",
      0,
      "\\d{11}",
      [11],
      [["(\\d{3})(\\d{3})(\\d{5})", "$1 $2 $3"]],
      0,
      0,
      0,
      0,
      0,
      0,
      [0, 0, 0, 0, 0, 0, ["\\d{11}"]],
    ],
    "979": [
      "979",
      0,
      "[1359]\\d{8}",
      [9],
      [["(\\d)(\\d{4})(\\d{4})", "$1 $2 $3", ["[1359]"]]],
      0,
      0,
      0,
      0,
      0,
      0,
      [0, 0, 0, ["[1359]\\d{8}"]],
    ],
  },
};
var S = je;
function s(r, t) {
  var e = Array.prototype.slice.call(t);
  return e.push(je), r.apply(this, e);
}
function Er(r, t) {
  if (!(r instanceof t)) {
    throw new TypeError("Cannot call a class as a function");
  }
}
var b = function r(t) {
  Er(this, r),
    this.name = this.constructor.name,
    this.message = t,
    this.stack = new Error(t).stack;
};
b.prototype = Object.create(Error.prototype);
b.prototype.constructor = b;
var z = 2,
  he = 17,
  ge = 3,
  p = "0-9\uFF10-\uFF19\u0660-\u0669\u06F0-\u06F9",
  Dr = "-\u2010-\u2015\u2212\u30FC\uFF0D",
  Tr = "\uFF0F/",
  Ir = "\uFF0E.",
  Xe = " \xA0\xAD\u200B\u2060\u3000",
  Sr = "()\uFF08\uFF09\uFF3B\uFF3D\\[\\]",
  _r = "~\u2053\u223C\uFF5E",
  h = "".concat(Dr).concat(Tr).concat(Ir).concat(Xe).concat(Sr).concat(_r),
  _ = "+\uFF0B";
function Ze(r, t) {
  r = r.split("-"), t = t.split("-");
  for (var e = r[0].split("."), n = t[0].split("."), a = 0; a < 3; a++) {
    var i = Number(e[a]), d = Number(n[a]);
    if (i > d) return 1;
    if (d > i) return -1;
    if (!isNaN(i) && isNaN(d)) return 1;
    if (isNaN(i) && !isNaN(d)) return -1;
  }
  return r[1] && t[1]
    ? r[1] > t[1] ? 1 : r[1] < t[1] ? -1 : 0
    : !r[1] && t[1]
    ? 1
    : r[1] && !t[1]
    ? -1
    : 0;
}
function K(r) {
  return typeof Symbol == "function" && typeof Symbol.iterator == "symbol"
    ? K = function (e) {
      return typeof e;
    }
    : K = function (e) {
      return e && typeof Symbol == "function" && e.constructor === Symbol &&
          e !== Symbol.prototype
        ? "symbol"
        : typeof e;
    },
    K(r);
}
function pe(r, t) {
  if (!(r instanceof t)) {
    throw new TypeError("Cannot call a class as a function");
  }
}
function Pt(r, t) {
  for (var e = 0; e < t.length; e++) {
    var n = t[e];
    n.enumerable = n.enumerable || !1,
      n.configurable = !0,
      "value" in n && (n.writable = !0),
      Object.defineProperty(r, n.key, n);
  }
}
function Ne(r, t, e) {
  return t && Pt(r.prototype, t), e && Pt(r, e), r;
}
var Br = "1.2.0",
  Rr = "1.7.35",
  ze = " ext. ",
  Or = /^\d+$/,
  m = function () {
    function r(t) {
      pe(this, r), kr(t), this.metadata = t, Dt.call(this, t);
    }
    return Ne(r, [{
      key: "getCountries",
      value: function () {
        return Object.keys(this.metadata.countries).filter(function (e) {
          return e !== "001";
        });
      },
    }, {
      key: "getCountryMetadata",
      value: function (e) {
        return this.metadata.countries[e];
      },
    }, {
      key: "nonGeographic",
      value: function () {
        if (!(this.v1 || this.v2 || this.v3)) {
          return this.metadata.nonGeographic || this.metadata.nonGeographical;
        }
      },
    }, {
      key: "hasCountry",
      value: function (e) {
        return this.getCountryMetadata(e) !== void 0;
      },
    }, {
      key: "hasCallingCode",
      value: function (e) {
        if (this.getCountryCodesForCallingCode(e)) return !0;
        if (this.nonGeographic()) if (this.nonGeographic()[e]) return !0;
        else {
          var n = this.countryCallingCodes()[e];
          if (n && n.length === 1 && n[0] === "001") return !0;
        }
      },
    }, {
      key: "isNonGeographicCallingCode",
      value: function (e) {
        return this.nonGeographic()
          ? !!this.nonGeographic()[e]
          : !this.getCountryCodesForCallingCode(e);
      },
    }, {
      key: "country",
      value: function (e) {
        return this.selectNumberingPlan(e);
      },
    }, {
      key: "selectNumberingPlan",
      value: function (e, n) {
        if (e && Or.test(e) && (n = e, e = null), e && e !== "001") {
          if (!this.hasCountry(e)) {
            throw new Error("Unknown country: ".concat(e));
          }
          this.numberingPlan = new Ft(this.getCountryMetadata(e), this);
        } else if (n) {
          if (!this.hasCallingCode(n)) {
            throw new Error("Unknown calling code: ".concat(n));
          }
          this.numberingPlan = new Ft(this.getNumberingPlanMetadata(n), this);
        } else this.numberingPlan = void 0;
        return this;
      },
    }, {
      key: "getCountryCodesForCallingCode",
      value: function (e) {
        var n = this.countryCallingCodes()[e];
        if (n) return n.length === 1 && n[0].length === 3 ? void 0 : n;
      },
    }, {
      key: "getCountryCodeForCallingCode",
      value: function (e) {
        var n = this.getCountryCodesForCallingCode(e);
        if (n) return n[0];
      },
    }, {
      key: "getNumberingPlanMetadata",
      value: function (e) {
        var n = this.getCountryCodeForCallingCode(e);
        if (n) return this.getCountryMetadata(n);
        if (this.nonGeographic()) {
          var a = this.nonGeographic()[e];
          if (a) return a;
        } else {
          var i = this.countryCallingCodes()[e];
          if (i && i.length === 1 && i[0] === "001") {
            return this.metadata.countries["001"];
          }
        }
      },
    }, {
      key: "countryCallingCode",
      value: function () {
        return this.numberingPlan.callingCode();
      },
    }, {
      key: "IDDPrefix",
      value: function () {
        return this.numberingPlan.IDDPrefix();
      },
    }, {
      key: "defaultIDDPrefix",
      value: function () {
        return this.numberingPlan.defaultIDDPrefix();
      },
    }, {
      key: "nationalNumberPattern",
      value: function () {
        return this.numberingPlan.nationalNumberPattern();
      },
    }, {
      key: "possibleLengths",
      value: function () {
        return this.numberingPlan.possibleLengths();
      },
    }, {
      key: "formats",
      value: function () {
        return this.numberingPlan.formats();
      },
    }, {
      key: "nationalPrefixForParsing",
      value: function () {
        return this.numberingPlan.nationalPrefixForParsing();
      },
    }, {
      key: "nationalPrefixTransformRule",
      value: function () {
        return this.numberingPlan.nationalPrefixTransformRule();
      },
    }, {
      key: "leadingDigits",
      value: function () {
        return this.numberingPlan.leadingDigits();
      },
    }, {
      key: "hasTypes",
      value: function () {
        return this.numberingPlan.hasTypes();
      },
    }, {
      key: "type",
      value: function (e) {
        return this.numberingPlan.type(e);
      },
    }, {
      key: "ext",
      value: function () {
        return this.numberingPlan.ext();
      },
    }, {
      key: "countryCallingCodes",
      value: function () {
        return this.v1
          ? this.metadata.country_phone_code_to_countries
          : this.metadata.country_calling_codes;
      },
    }, {
      key: "chooseCountryByCountryCallingCode",
      value: function (e) {
        return this.selectNumberingPlan(e);
      },
    }, {
      key: "hasSelectedNumberingPlan",
      value: function () {
        return this.numberingPlan !== void 0;
      },
    }]),
      r;
  }();
var Ft = function () {
    function r(t, e) {
      pe(this, r),
        this.globalMetadataObject = e,
        this.metadata = t,
        Dt.call(this, e.metadata);
    }
    return Ne(r, [{
      key: "callingCode",
      value: function () {
        return this.metadata[0];
      },
    }, {
      key: "getDefaultCountryMetadataForRegion",
      value: function () {
        return this.globalMetadataObject.getNumberingPlanMetadata(
          this.callingCode(),
        );
      },
    }, {
      key: "IDDPrefix",
      value: function () {
        if (!(this.v1 || this.v2)) return this.metadata[1];
      },
    }, {
      key: "defaultIDDPrefix",
      value: function () {
        if (!(this.v1 || this.v2)) return this.metadata[12];
      },
    }, {
      key: "nationalNumberPattern",
      value: function () {
        return this.v1 || this.v2 ? this.metadata[1] : this.metadata[2];
      },
    }, {
      key: "possibleLengths",
      value: function () {
        if (!this.v1) return this.metadata[this.v2 ? 2 : 3];
      },
    }, {
      key: "_getFormats",
      value: function (e) {
        return e[this.v1 ? 2 : this.v2 ? 3 : 4];
      },
    }, {
      key: "formats",
      value: function () {
        var e = this,
          n = this._getFormats(this.metadata) ||
            this._getFormats(this.getDefaultCountryMetadataForRegion()) || [];
        return n.map(function (a) {
          return new wr(a, e);
        });
      },
    }, {
      key: "nationalPrefix",
      value: function () {
        return this.metadata[this.v1 ? 3 : this.v2 ? 4 : 5];
      },
    }, {
      key: "_getNationalPrefixFormattingRule",
      value: function (e) {
        return e[this.v1 ? 4 : this.v2 ? 5 : 6];
      },
    }, {
      key: "nationalPrefixFormattingRule",
      value: function () {
        return this._getNationalPrefixFormattingRule(this.metadata) ||
          this._getNationalPrefixFormattingRule(
            this.getDefaultCountryMetadataForRegion(),
          );
      },
    }, {
      key: "_nationalPrefixForParsing",
      value: function () {
        return this.metadata[this.v1 ? 5 : this.v2 ? 6 : 7];
      },
    }, {
      key: "nationalPrefixForParsing",
      value: function () {
        return this._nationalPrefixForParsing() || this.nationalPrefix();
      },
    }, {
      key: "nationalPrefixTransformRule",
      value: function () {
        return this.metadata[this.v1 ? 6 : this.v2 ? 7 : 8];
      },
    }, {
      key: "_getNationalPrefixIsOptionalWhenFormatting",
      value: function () {
        return !!this.metadata[this.v1 ? 7 : this.v2 ? 8 : 9];
      },
    }, {
      key: "nationalPrefixIsOptionalWhenFormattingInNationalFormat",
      value: function () {
        return this._getNationalPrefixIsOptionalWhenFormatting(this.metadata) ||
          this._getNationalPrefixIsOptionalWhenFormatting(
            this.getDefaultCountryMetadataForRegion(),
          );
      },
    }, {
      key: "leadingDigits",
      value: function () {
        return this.metadata[this.v1 ? 8 : this.v2 ? 9 : 10];
      },
    }, {
      key: "types",
      value: function () {
        return this.metadata[this.v1 ? 9 : this.v2 ? 10 : 11];
      },
    }, {
      key: "hasTypes",
      value: function () {
        return this.types() && this.types().length === 0 ? !1 : !!this.types();
      },
    }, {
      key: "type",
      value: function (e) {
        if (this.hasTypes() && Et(this.types(), e)) {
          return new Mr(Et(this.types(), e), this);
        }
      },
    }, {
      key: "ext",
      value: function () {
        return this.v1 || this.v2 ? ze : this.metadata[13] || ze;
      },
    }]),
      r;
  }(),
  wr = function () {
    function r(t, e) {
      pe(this, r), this._format = t, this.metadata = e;
    }
    return Ne(r, [{
      key: "pattern",
      value: function () {
        return this._format[0];
      },
    }, {
      key: "format",
      value: function () {
        return this._format[1];
      },
    }, {
      key: "leadingDigitsPatterns",
      value: function () {
        return this._format[2] || [];
      },
    }, {
      key: "nationalPrefixFormattingRule",
      value: function () {
        return this._format[3] || this.metadata.nationalPrefixFormattingRule();
      },
    }, {
      key: "nationalPrefixIsOptionalWhenFormattingInNationalFormat",
      value: function () {
        return !!this._format[4] ||
          this.metadata
            .nationalPrefixIsOptionalWhenFormattingInNationalFormat();
      },
    }, {
      key: "nationalPrefixIsMandatoryWhenFormattingInNationalFormat",
      value: function () {
        return this.usesNationalPrefix() &&
          !this.nationalPrefixIsOptionalWhenFormattingInNationalFormat();
      },
    }, {
      key: "usesNationalPrefix",
      value: function () {
        return !!(this.nationalPrefixFormattingRule() &&
          !Lr.test(this.nationalPrefixFormattingRule()));
      },
    }, {
      key: "internationalFormat",
      value: function () {
        return this._format[5] || this.format();
      },
    }]),
      r;
  }(),
  Lr = /^\(?\$1\)?$/,
  Mr = function () {
    function r(t, e) {
      pe(this, r), this.type = t, this.metadata = e;
    }
    return Ne(r, [{
      key: "pattern",
      value: function () {
        return this.metadata.v1 ? this.type : this.type[0];
      },
    }, {
      key: "possibleLengths",
      value: function () {
        if (!this.metadata.v1) {
          return this.type[1] || this.metadata.possibleLengths();
        }
      },
    }]),
      r;
  }();
function Et(r, t) {
  switch (t) {
    case "FIXED_LINE":
      return r[0];
    case "MOBILE":
      return r[1];
    case "TOLL_FREE":
      return r[2];
    case "PREMIUM_RATE":
      return r[3];
    case "PERSONAL_NUMBER":
      return r[4];
    case "VOICEMAIL":
      return r[5];
    case "UAN":
      return r[6];
    case "PAGER":
      return r[7];
    case "VOIP":
      return r[8];
    case "SHARED_COST":
      return r[9];
  }
}
function kr(r) {
  if (!r) {
    throw new Error(
      "[libphonenumber-js] `metadata` argument not passed. Check your arguments.",
    );
  }
  if (!Ke(r) || !Ke(r.countries)) {
    throw new Error(
      "[libphonenumber-js] `metadata` argument was passed but it's not a valid metadata. Must be an object having `.countries` child object property. Got "
        .concat(
          Ke(r)
            ? "an object of shape: { " + Object.keys(r).join(", ") + " }"
            : "a " + Gr(r) + ": " + r,
          ".",
        ),
    );
  }
}
var Ke = function (t) {
    return K(t) === "object";
  },
  Gr = function (t) {
    return K(t);
  };
function Je(r, t) {
  return t = new m(t), t.hasCountry(r) ? t.country(r).ext() : ze;
}
function y(r, t) {
  if (t = new m(t), t.hasCountry(r)) return t.country(r).countryCallingCode();
  throw new Error("Unknown country: ".concat(r));
}
function L(r, t) {
  return t.countries[r] !== void 0;
}
function Dt(r) {
  var t = r.version;
  typeof t == "number"
    ? (this.v1 = t === 1,
      this.v2 = t === 2,
      this.v3 = t === 3,
      this.v4 = t === 4)
    : t
    ? Ze(t, Br) === -1
      ? this.v2 = !0
      : Ze(t, Rr) === -1
      ? this.v3 = !0
      : this.v4 = !0
    : this.v1 = !0;
}
var Ur = ";ext=",
  V = function (t) {
    return "([".concat(p, "]{1,").concat(t, "})");
  };
function D(r) {
  var t = "20",
    e = "15",
    n = "9",
    a = "6",
    i = "[ \xA0\\t,]*",
    d = "[:\\.\uFF0E]?[ \xA0\\t,-]*",
    u = "#?",
    o =
      "(?:e?xt(?:ensi(?:o\u0301?|\xF3))?n?|\uFF45?\uFF58\uFF54\uFF4E?|\u0434\u043E\u0431|anexo)",
    $ = "(?:[x\uFF58#\uFF03~\uFF5E]|int|\uFF49\uFF4E\uFF54)",
    f = "[- ]+",
    l = "[ \xA0\\t]*",
    c = "(?:,{2}|;)",
    v = Ur + V(t),
    O = i + o + d + V(t) + u,
    w = i + $ + d + V(n) + u,
    E = f + V(a) + "#",
    Pr = l + c + d + V(e) + u,
    Fr = l + "(?:,)+" + d + V(n) + u;
  return v + "|" + O + "|" + w + "|" + E + "|" + Pr + "|" + Fr;
}
var Vr = "[" + p + "]{" + z + "}",
  Hr = "[" + _ + "]{0,1}(?:[" + h + "]*[" + p + "]){3,}[" + h + p + "]*",
  Qe = Hr + "(?:" + D() + ")?",
  Wr = new RegExp("^" + Vr + "$|^" + Qe + "$", "i");
function F(r) {
  return r.length >= z && Wr.test(r);
}
var Tt = new RegExp("(?:" + D() + ")$", "i");
function qe(r) {
  var t = r.search(Tt);
  if (t < 0) return {};
  for (var e = r.slice(0, t), n = r.match(Tt), a = 1; a < n.length;) {
    if (n[a]) return { number: e, ext: n[a] };
    a++;
  }
}
var It = {
  "0": "0",
  "1": "1",
  "2": "2",
  "3": "3",
  "4": "4",
  "5": "5",
  "6": "6",
  "7": "7",
  "8": "8",
  "9": "9",
  "\uFF10": "0",
  "\uFF11": "1",
  "\uFF12": "2",
  "\uFF13": "3",
  "\uFF14": "4",
  "\uFF15": "5",
  "\uFF16": "6",
  "\uFF17": "7",
  "\uFF18": "8",
  "\uFF19": "9",
  "\u0660": "0",
  "\u0661": "1",
  "\u0662": "2",
  "\u0663": "3",
  "\u0664": "4",
  "\u0665": "5",
  "\u0666": "6",
  "\u0667": "7",
  "\u0668": "8",
  "\u0669": "9",
  "\u06F0": "0",
  "\u06F1": "1",
  "\u06F2": "2",
  "\u06F3": "3",
  "\u06F4": "4",
  "\u06F5": "5",
  "\u06F6": "6",
  "\u06F7": "7",
  "\u06F8": "8",
  "\u06F9": "9",
};
function et(r) {
  return It[r];
}
function x(r) {
  for (
    var t = "",
      e = r.split(""),
      n = Array.isArray(e),
      a = 0,
      e = n ? e : e[Symbol.iterator]();;
  ) {
    var i;
    if (n) {
      if (a >= e.length) break;
      i = e[a++];
    } else {
      if (a = e.next(), a.done) break;
      i = a.value;
    }
    var d = i, u = et(d);
    u && (t += u);
  }
  return t;
}
function H(r) {
  for (
    var t = "",
      e = r.split(""),
      n = Array.isArray(e),
      a = 0,
      e = n ? e : e[Symbol.iterator]();;
  ) {
    var i;
    if (n) {
      if (a >= e.length) break;
      i = e[a++];
    } else {
      if (a = e.next(), a.done) break;
      i = a.value;
    }
    var d = i;
    t += tt(d, t) || "";
  }
  return t;
}
function tt(r, t) {
  return r === "+" ? t ? void 0 : "+" : et(r);
}
function rt(r, t) {
  for (
    var e = r.slice(),
      n = t,
      a = Array.isArray(n),
      i = 0,
      n = a ? n : n[Symbol.iterator]();;
  ) {
    var d;
    if (a) {
      if (i >= n.length) break;
      d = n[i++];
    } else {
      if (i = n.next(), i.done) break;
      d = i.value;
    }
    var u = d;
    r.indexOf(u) < 0 && e.push(u);
  }
  return e.sort(function (o, $) {
    return o - $;
  });
}
function T(r, t) {
  return St(r, void 0, t);
}
function St(r, t, e) {
  var n = e.type(t), a = n && n.possibleLengths() || e.possibleLengths();
  if (!a) return "IS_POSSIBLE";
  if (t === "FIXED_LINE_OR_MOBILE") {
    if (!e.type("FIXED_LINE")) return St(r, "MOBILE", e);
    var i = e.type("MOBILE");
    i && (a = rt(a, i.possibleLengths()));
  } else if (t && !n) return "INVALID_LENGTH";
  var d = r.length, u = a[0];
  return u === d
    ? "IS_POSSIBLE"
    : u > d
    ? "TOO_SHORT"
    : a[a.length - 1] < d
    ? "TOO_LONG"
    : a.indexOf(d, 1) >= 0
    ? "IS_POSSIBLE"
    : "INVALID_LENGTH";
}
function J(r, t, e) {
  if (t === void 0 && (t = {}), e = new m(e), t.v2) {
    if (!r.countryCallingCode) {
      throw new Error("Invalid phone number object passed");
    }
    e.selectNumberingPlan(r.countryCallingCode);
  } else {
    if (!r.phone) return !1;
    if (r.country) {
      if (!e.hasCountry(r.country)) {
        throw new Error("Unknown country: ".concat(r.country));
      }
      e.country(r.country);
    } else {
      if (!r.countryCallingCode) {
        throw new Error("Invalid phone number object passed");
      }
      e.selectNumberingPlan(r.countryCallingCode);
    }
  }
  if (e.possibleLengths()) return nt(r.phone || r.nationalNumber, e);
  if (
    r.countryCallingCode && e.isNonGeographicCallingCode(r.countryCallingCode)
  ) {
    return !0;
  }
  throw new Error(
    'Missing "possibleLengths" in metadata. Perhaps the metadata has been generated before v1.0.18.',
  );
}
function nt(r, t) {
  switch (T(r, t)) {
    case "IS_POSSIBLE":
      return !0;
    default:
      return !1;
  }
}
function Yr(r, t) {
  return Zr(r) || Xr(r, t) || jr();
}
function jr() {
  throw new TypeError("Invalid attempt to destructure non-iterable instance");
}
function Xr(r, t) {
  var e = [], n = !0, a = !1, i = void 0;
  try {
    for (
      var d = r[Symbol.iterator](), u;
      !(n = (u = d.next()).done) && (e.push(u.value), !(t && e.length === t));
      n = !0
    );
  } catch (o) {
    a = !0, i = o;
  } finally {
    try {
      !n && d.return != null && d.return();
    } finally {
      if (a) throw i;
    }
  }
  return e;
}
function Zr(r) {
  if (Array.isArray(r)) return r;
}
function Ce(r) {
  var t, e;
  r = r.replace(/^tel:/, "tel=");
  for (
    var n = r.split(";"),
      a = Array.isArray(n),
      i = 0,
      n = a ? n : n[Symbol.iterator]();;
  ) {
    var d;
    if (a) {
      if (i >= n.length) break;
      d = n[i++];
    } else {
      if (i = n.next(), i.done) break;
      d = i.value;
    }
    var u = d, o = u.split("="), $ = Yr(o, 2), f = $[0], l = $[1];
    switch (f) {
      case "tel":
        t = l;
        break;
      case "ext":
        e = l;
        break;
      case "phone-context":
        l[0] === "+" && (t = l + t);
        break;
    }
  }
  if (!F(t)) return {};
  var c = { number: t };
  return e && (c.ext = e), c;
}
function Ae(r) {
  var t = r.number, e = r.ext;
  if (!t) return "";
  if (t[0] !== "+") {
    throw new Error(
      '"formatRFC3966()" expects "number" to be in E.164 format.',
    );
  }
  return "tel:".concat(t).concat(e ? ";ext=" + e : "");
}
function N(r, t) {
  return r = r || "", new RegExp("^(?:" + t + ")$").test(r);
}
var zr = [
  "MOBILE",
  "PREMIUM_RATE",
  "TOLL_FREE",
  "SHARED_COST",
  "VOIP",
  "PERSONAL_NUMBER",
  "PAGER",
  "UAN",
  "VOICEMAIL",
];
function I(r, t, e) {
  if (t = t || {}, !!r.country) {
    e = new m(e), e.selectNumberingPlan(r.country, r.countryCallingCode);
    var n = t.v2 ? r.nationalNumber : r.phone;
    if (!!N(n, e.nationalNumberPattern())) {
      if (at(n, "FIXED_LINE", e)) {
        return e.type("MOBILE") && e.type("MOBILE").pattern() === "" ||
            !e.type("MOBILE") || at(n, "MOBILE", e)
          ? "FIXED_LINE_OR_MOBILE"
          : "FIXED_LINE";
      }
      for (var a = 0, i = zr; a < i.length; a++) {
        var d = i[a];
        if (at(n, d, e)) return d;
      }
    }
  }
}
function at(r, t, e) {
  return t = e.type(t),
    !t || !t.pattern() ||
      t.possibleLengths() && t.possibleLengths().indexOf(r.length) < 0
      ? !1
      : N(r, t.pattern());
}
function P(r, t, e) {
  if (t = t || {}, e = new m(e), !r.country) return !1;
  if (e.selectNumberingPlan(r.country, r.countryCallingCode), e.hasTypes()) {
    return I(r, t, e.metadata) !== void 0;
  }
  var n = t.v2 ? r.nationalNumber : r.phone;
  return N(n, e.nationalNumberPattern());
}
function it(r, t, e, n) {
  return e = e || {}, r.country === t && P(r, e, n);
}
function Q(r) {
  return r.replace(new RegExp("[".concat(h, "]+"), "g"), " ").trim();
}
var dt = /(\$\d)/;
function q(r, t, e) {
  var n = e.useInternationalFormat,
    a = e.withNationalPrefix,
    i = e.carrierCode,
    d = e.metadata,
    u = r.replace(
      new RegExp(t.pattern()),
      n ? t.internationalFormat() : a && t.nationalPrefixFormattingRule()
        ? t.format().replace(dt, t.nationalPrefixFormattingRule())
        : t.format(),
    );
  return n ? Q(u) : u;
}
var Kr = /^[\d]+(?:[~\u2053\u223C\uFF5E][\d]+)?$/;
function ut(r, t, e) {
  var n = new m(e);
  if (n.selectNumberingPlan(r, t), n.defaultIDDPrefix()) {
    return n.defaultIDDPrefix();
  }
  if (Kr.test(n.IDDPrefix())) return n.IDDPrefix();
}
function Jr(r) {
  for (var t = 1; t < arguments.length; t++) {
    var e = arguments[t] != null ? arguments[t] : {}, n = Object.keys(e);
    typeof Object.getOwnPropertySymbols == "function" &&
    (n = n.concat(
      Object.getOwnPropertySymbols(e).filter(function (a) {
        return Object.getOwnPropertyDescriptor(e, a).enumerable;
      }),
    )),
      n.forEach(function (a) {
        Qr(r, a, e[a]);
      });
  }
  return r;
}
function Qr(r, t, e) {
  return t in r
    ? Object.defineProperty(r, t, {
      value: e,
      enumerable: !0,
      configurable: !0,
      writable: !0,
    })
    : r[t] = e,
    r;
}
var _t = {
  formatExtension: function (t, e, n) {
    return "".concat(t).concat(n.ext()).concat(e);
  },
};
function ee(r, t, e, n) {
  if (
    e ? e = Jr({}, _t, e) : e = _t,
      n = new m(n),
      r.country && r.country !== "001"
  ) {
    if (!n.hasCountry(r.country)) {
      throw new Error("Unknown country: ".concat(r.country));
    }
    n.country(r.country);
  } else if (r.countryCallingCode) n.selectNumberingPlan(r.countryCallingCode);
  else return r.phone || "";
  var a = n.countryCallingCode(), i = e.v2 ? r.nationalNumber : r.phone, d;
  switch (t) {
    case "NATIONAL":
      return i
        ? (d = be(i, r.carrierCode, "NATIONAL", n, e),
          ot(d, r.ext, n, e.formatExtension))
        : "";
    case "INTERNATIONAL":
      return i
        ? (d = be(i, null, "INTERNATIONAL", n, e),
          d = "+".concat(a, " ").concat(d),
          ot(d, r.ext, n, e.formatExtension))
        : "+".concat(a);
    case "E.164":
      return "+".concat(a).concat(i);
    case "RFC3966":
      return Ae({ number: "+".concat(a).concat(i), ext: r.ext });
    case "IDD":
      if (!e.fromCountry) return;
      var u = en(i, r.carrierCode, a, e.fromCountry, n);
      return ot(u, r.ext, n, e.formatExtension);
    default:
      throw new Error(
        'Unknown "format" argument passed to "formatNumber()": "'.concat(
          t,
          '"',
        ),
      );
  }
}
function be(r, t, e, n, a) {
  var i = qr(n.formats(), r);
  return i
    ? q(r, i, {
      useInternationalFormat: e === "INTERNATIONAL",
      withNationalPrefix:
        !(i.nationalPrefixIsOptionalWhenFormattingInNationalFormat() && a &&
          a.nationalPrefix === !1),
      carrierCode: t,
      metadata: n,
    })
    : r;
}
function qr(r, t) {
  for (
    var e = r, n = Array.isArray(e), a = 0, e = n ? e : e[Symbol.iterator]();;
  ) {
    var i;
    if (n) {
      if (a >= e.length) break;
      i = e[a++];
    } else {
      if (a = e.next(), a.done) break;
      i = a.value;
    }
    var d = i;
    if (d.leadingDigitsPatterns().length > 0) {
      var u = d.leadingDigitsPatterns()[d.leadingDigitsPatterns().length - 1];
      if (t.search(u) !== 0) continue;
    }
    if (N(t, d.pattern())) return d;
  }
}
function ot(r, t, e, n) {
  return t ? n(r, t, e) : r;
}
function en(r, t, e, n, a) {
  var i = y(n, a.metadata);
  if (i === e) {
    var d = be(r, t, "NATIONAL", a);
    return e === "1" ? e + " " + d : d;
  }
  var u = ut(n, void 0, a.metadata);
  if (u) {
    return "".concat(u, " ").concat(e, " ").concat(
      be(r, null, "INTERNATIONAL", a),
    );
  }
}
function tn(r) {
  for (var t = 1; t < arguments.length; t++) {
    var e = arguments[t] != null ? arguments[t] : {}, n = Object.keys(e);
    typeof Object.getOwnPropertySymbols == "function" &&
    (n = n.concat(
      Object.getOwnPropertySymbols(e).filter(function (a) {
        return Object.getOwnPropertyDescriptor(e, a).enumerable;
      }),
    )),
      n.forEach(function (a) {
        rn(r, a, e[a]);
      });
  }
  return r;
}
function rn(r, t, e) {
  return t in r
    ? Object.defineProperty(r, t, {
      value: e,
      enumerable: !0,
      configurable: !0,
      writable: !0,
    })
    : r[t] = e,
    r;
}
function nn(r, t) {
  if (!(r instanceof t)) {
    throw new TypeError("Cannot call a class as a function");
  }
}
function Bt(r, t) {
  for (var e = 0; e < t.length; e++) {
    var n = t[e];
    n.enumerable = n.enumerable || !1,
      n.configurable = !0,
      "value" in n && (n.writable = !0),
      Object.defineProperty(r, n.key, n);
  }
}
function an(r, t, e) {
  return t && Bt(r.prototype, t), e && Bt(r, e), r;
}
var dn = !1,
  B = function () {
    function r(t, e, n) {
      if (nn(this, r), !t) {throw new TypeError(
          "`country` or `countryCallingCode` not passed",
        );}
      if (!e) throw new TypeError("`nationalNumber` not passed");
      if (!n) throw new TypeError("`metadata` not passed");
      var a = new m(n);
      un(t)
        ? (this.country = t, a.country(t), t = a.countryCallingCode())
        : dn && a.isNonGeographicCallingCode(t) && (this.country = "001"),
        this.countryCallingCode = t,
        this.nationalNumber = e,
        this.number = "+" + this.countryCallingCode + this.nationalNumber,
        this.metadata = n;
    }
    return an(r, [{
      key: "isPossible",
      value: function () {
        return J(this, { v2: !0 }, this.metadata);
      },
    }, {
      key: "isValid",
      value: function () {
        return P(this, { v2: !0 }, this.metadata);
      },
    }, {
      key: "isNonGeographic",
      value: function () {
        var e = new m(this.metadata);
        return e.isNonGeographicCallingCode(this.countryCallingCode);
      },
    }, {
      key: "isEqual",
      value: function (e) {
        return this.number === e.number && this.ext === e.ext;
      },
    }, {
      key: "getType",
      value: function () {
        return I(this, { v2: !0 }, this.metadata);
      },
    }, {
      key: "format",
      value: function (e, n) {
        return ee(
          this,
          e,
          n ? tn({}, n, { v2: !0 }) : { v2: !0 },
          this.metadata,
        );
      },
    }, {
      key: "formatNational",
      value: function (e) {
        return this.format("NATIONAL", e);
      },
    }, {
      key: "formatInternational",
      value: function (e) {
        return this.format("INTERNATIONAL", e);
      },
    }, {
      key: "getURI",
      value: function (e) {
        return this.format("RFC3966", e);
      },
    }]),
      r;
  }();
var un = function (t) {
  return /^[A-Z]{2}$/.test(t);
};
var on = new RegExp("([" + p + "])");
function te(r, t, e, n) {
  if (!!t) {
    var a = new m(n);
    a.selectNumberingPlan(t, e);
    var i = new RegExp(a.IDDPrefix());
    if (r.search(i) === 0) {
      r = r.slice(r.match(i)[0].length);
      var d = r.match(on);
      if (!(d && d[1] != null && d[1].length > 0 && d[1] === "0")) return r;
    }
  }
}
function W(r, t) {
  if (r && t.numberingPlan.nationalPrefixForParsing()) {
    var e = new RegExp(
        "^(?:" + t.numberingPlan.nationalPrefixForParsing() + ")",
      ),
      n = e.exec(r);
    if (n) {
      var a, i, d = n.length - 1, u = d > 0 && n[d];
      if (t.nationalPrefixTransformRule() && u) {
        a = r.replace(e, t.nationalPrefixTransformRule()), d > 1 && (i = n[1]);
      } else {
        var o = n[0];
        a = r.slice(o.length), u && (i = n[1]);
      }
      var $;
      if (u) {
        var f = r.indexOf(n[1]), l = r.slice(0, f);
        l === t.numberingPlan.nationalPrefix() &&
          ($ = t.numberingPlan.nationalPrefix());
      } else $ = n[0];
      return { nationalNumber: a, nationalPrefix: $, carrierCode: i };
    }
  }
  return { nationalNumber: r };
}
function Y(r, t) {
  var e = W(r, t), n = e.nationalNumber, a = e.carrierCode;
  if (!$n(r, n, t)) return { nationalNumber: r };
  if (r.length !== n.length + (a ? a.length : 0) && t.possibleLengths()) {
    switch (T(n, t)) {
      case "TOO_SHORT":
      case "INVALID_LENGTH":
        return { nationalNumber: r };
    }
  }
  return { nationalNumber: n, carrierCode: a };
}
function $n(r, t, e) {
  return !(N(r, e.nationalNumberPattern()) && !N(t, e.nationalNumberPattern()));
}
function re(r, t, e, n) {
  var a = t ? y(t, n) : e;
  if (r.indexOf(a) === 0) {
    n = new m(n), n.selectNumberingPlan(t, e);
    var i = r.slice(a.length),
      d = Y(i, n),
      u = d.nationalNumber,
      o = Y(r, n),
      $ = o.nationalNumber;
    if (
      !N($, n.nationalNumberPattern()) && N(u, n.nationalNumberPattern()) ||
      T($, n) === "TOO_LONG"
    ) {
      return { countryCallingCode: a, number: i };
    }
  }
  return { number: r };
}
function ne(r, t, e, n) {
  if (!r) return {};
  if (r[0] !== "+") {
    var a = te(r, t, e, n);
    if (a && a !== r) r = "+" + a;
    else {
      if (t || e) {
        var i = re(r, t, e, n), d = i.countryCallingCode, u = i.number;
        if (d) return { countryCallingCode: d, number: u };
      }
      return { number: r };
    }
  }
  if (r[1] === "0") return {};
  n = new m(n);
  for (var o = 2; o - 1 <= ge && o <= r.length;) {
    var $ = r.slice(1, o);
    if (n.hasCallingCode($)) {
      return n.selectNumberingPlan($),
        { countryCallingCode: $, number: r.slice(o) };
    }
    o++;
  }
  return {};
}
var ln = !1;
function ae(r, t, e) {
  if (ln && e.isNonGeographicCallingCode(r)) return "001";
  var n = e.getCountryCodesForCallingCode(r);
  if (!!n) return n.length === 1 ? n[0] : sn(n, t, e.metadata);
}
function sn(r, t, e) {
  e = new m(e);
  for (
    var n = r, a = Array.isArray(n), i = 0, n = a ? n : n[Symbol.iterator]();;
  ) {
    var d;
    if (a) {
      if (i >= n.length) break;
      d = n[i++];
    } else {
      if (i = n.next(), i.done) break;
      d = i.value;
    }
    var u = d;
    if (e.country(u), e.leadingDigits()) {
      if (t && t.search(e.leadingDigits()) === 0) return u;
    } else if (I({ phone: t, country: u }, void 0, e.metadata)) return u;
  }
}
var fn = 250,
  mn = new RegExp("[" + _ + p + "]"),
  cn = new RegExp("[^" + p + "#]+$"),
  hn = !1;
function g(r, t, e) {
  if (
    t = t || {},
      e = new m(e),
      t.defaultCountry && !e.hasCountry(t.defaultCountry)
  ) {
    throw t.v2
      ? new b("INVALID_COUNTRY")
      : new Error("Unknown country: ".concat(t.defaultCountry));
  }
  var n = pn(r, t.v2, t.extract), a = n.number, i = n.ext;
  if (!a) {
    if (t.v2) throw new b("NOT_A_NUMBER");
    return {};
  }
  var d = Cn(a, t.defaultCountry, t.defaultCallingCode, e),
    u = d.country,
    o = d.nationalNumber,
    $ = d.countryCallingCode,
    f = d.carrierCode;
  if (!e.hasSelectedNumberingPlan()) {
    if (t.v2) throw new b("INVALID_COUNTRY");
    return {};
  }
  if (!o || o.length < z) {
    if (t.v2) throw new b("TOO_SHORT");
    return {};
  }
  if (o.length > he) {
    if (t.v2) throw new b("TOO_LONG");
    return {};
  }
  if (t.v2) {
    var l = new B($, o, e.metadata);
    return u && (l.country = u), f && (l.carrierCode = f), i && (l.ext = i), l;
  }
  var c = (t.extended ? e.hasSelectedNumberingPlan() : u)
    ? N(o, e.nationalNumberPattern())
    : !1;
  return t.extended
    ? {
      country: u,
      countryCallingCode: $,
      carrierCode: f,
      valid: c,
      possible: c
        ? !0
        : !!(t.extended === !0 && e.possibleLengths() && nt(o, e)),
      phone: o,
      ext: i,
    }
    : c
    ? Nn(u, o, i)
    : {};
}
function gn(r, t, e) {
  if (!!r) {
    if (r.length > fn) {
      if (e) throw new b("TOO_LONG");
      return;
    }
    if (t === !1) return r;
    var n = r.search(mn);
    if (!(n < 0)) return r.slice(n).replace(cn, "");
  }
}
function pn(r, t, e) {
  if (r && r.indexOf("tel:") === 0) return Ce(r);
  var n = gn(r, e, t);
  if (!n || !F(n)) return {};
  var a = qe(n);
  return a.ext ? a : { number: n };
}
function Nn(r, t, e) {
  var n = { country: r, phone: t };
  return e && (n.ext = e), n;
}
function Cn(r, t, e, n) {
  var a = ne(H(r), t, e, n.metadata), i = a.countryCallingCode, d = a.number, u;
  if (i) n.selectNumberingPlan(i);
  else if (d && (t || e)) {
    n.selectNumberingPlan(t, e),
      t ? u = t : hn && n.isNonGeographicCallingCode(e) && (u = "001"),
      i = e || y(t, n.metadata);
  } else return {};
  if (!d) return { countryCallingCode: i };
  var o = Y(H(d), n), $ = o.nationalNumber, f = o.carrierCode, l = ae(i, $, n);
  return l && (u = l, l === "001" || n.country(u)),
    { country: u, countryCallingCode: i, nationalNumber: $, carrierCode: f };
}
function An(r) {
  for (var t = 1; t < arguments.length; t++) {
    var e = arguments[t] != null ? arguments[t] : {}, n = Object.keys(e);
    typeof Object.getOwnPropertySymbols == "function" &&
    (n = n.concat(
      Object.getOwnPropertySymbols(e).filter(function (a) {
        return Object.getOwnPropertyDescriptor(e, a).enumerable;
      }),
    )),
      n.forEach(function (a) {
        bn(r, a, e[a]);
      });
  }
  return r;
}
function bn(r, t, e) {
  return t in r
    ? Object.defineProperty(r, t, {
      value: e,
      enumerable: !0,
      configurable: !0,
      writable: !0,
    })
    : r[t] = e,
    r;
}
function ie(r, t, e) {
  return g(r, An({}, t, { v2: !0 }), e);
}
function ye(r) {
  return typeof Symbol == "function" && typeof Symbol.iterator == "symbol"
    ? ye = function (e) {
      return typeof e;
    }
    : ye = function (e) {
      return e && typeof Symbol == "function" && e.constructor === Symbol &&
          e !== Symbol.prototype
        ? "symbol"
        : typeof e;
    },
    ye(r);
}
function yn(r) {
  for (var t = 1; t < arguments.length; t++) {
    var e = arguments[t] != null ? arguments[t] : {}, n = Object.keys(e);
    typeof Object.getOwnPropertySymbols == "function" &&
    (n = n.concat(
      Object.getOwnPropertySymbols(e).filter(function (a) {
        return Object.getOwnPropertyDescriptor(e, a).enumerable;
      }),
    )),
      n.forEach(function (a) {
        xn(r, a, e[a]);
      });
  }
  return r;
}
function xn(r, t, e) {
  return t in r
    ? Object.defineProperty(r, t, {
      value: e,
      enumerable: !0,
      configurable: !0,
      writable: !0,
    })
    : r[t] = e,
    r;
}
function vn(r, t) {
  return En(r) || Fn(r, t) || Pn();
}
function Pn() {
  throw new TypeError("Invalid attempt to destructure non-iterable instance");
}
function Fn(r, t) {
  var e = [], n = !0, a = !1, i = void 0;
  try {
    for (
      var d = r[Symbol.iterator](), u;
      !(n = (u = d.next()).done) && (e.push(u.value), !(t && e.length === t));
      n = !0
    );
  } catch (o) {
    a = !0, i = o;
  } finally {
    try {
      !n && d.return != null && d.return();
    } finally {
      if (a) throw i;
    }
  }
  return e;
}
function En(r) {
  if (Array.isArray(r)) return r;
}
function de() {
  var r = C(arguments), t = r.text, e = r.options, n = r.metadata;
  return ie(t, e, n);
}
function C(r) {
  var t = Array.prototype.slice.call(r),
    e = vn(t, 4),
    n = e[0],
    a = e[1],
    i = e[2],
    d = e[3],
    u,
    o,
    $;
  if (typeof n == "string") u = n;
  else throw new TypeError("A text for parsing must be a string.");
  if (!a || typeof a == "string") {
    d ? (o = i, $ = d) : (o = void 0, $ = i),
      a && (o = yn({ defaultCountry: a }, o));
  } else if (Dn(a)) i ? (o = a, $ = i) : $ = a;
  else throw new Error("Invalid second argument: ".concat(a));
  return { text: u, options: o, metadata: $ };
}
var Dn = function (t) {
  return ye(t) === "object";
};
function Tn(r) {
  for (var t = 1; t < arguments.length; t++) {
    var e = arguments[t] != null ? arguments[t] : {}, n = Object.keys(e);
    typeof Object.getOwnPropertySymbols == "function" &&
    (n = n.concat(
      Object.getOwnPropertySymbols(e).filter(function (a) {
        return Object.getOwnPropertyDescriptor(e, a).enumerable;
      }),
    )),
      n.forEach(function (a) {
        In(r, a, e[a]);
      });
  }
  return r;
}
function In(r, t, e) {
  return t in r
    ? Object.defineProperty(r, t, {
      value: e,
      enumerable: !0,
      configurable: !0,
      writable: !0,
    })
    : r[t] = e,
    r;
}
function M(r, t, e) {
  t && t.defaultCountry && !L(t.defaultCountry, e) &&
    (t = Tn({}, t, { defaultCountry: void 0 }));
  try {
    return ie(r, t, e);
  } catch (n) {
    if (!(n instanceof b)) throw n;
  }
}
function ue() {
  var r = C(arguments), t = r.text, e = r.options, n = r.metadata;
  return M(t, e, n);
}
function Sn(r) {
  for (var t = 1; t < arguments.length; t++) {
    var e = arguments[t] != null ? arguments[t] : {}, n = Object.keys(e);
    typeof Object.getOwnPropertySymbols == "function" &&
    (n = n.concat(
      Object.getOwnPropertySymbols(e).filter(function (a) {
        return Object.getOwnPropertyDescriptor(e, a).enumerable;
      }),
    )),
      n.forEach(function (a) {
        _n(r, a, e[a]);
      });
  }
  return r;
}
function _n(r, t, e) {
  return t in r
    ? Object.defineProperty(r, t, {
      value: e,
      enumerable: !0,
      configurable: !0,
      writable: !0,
    })
    : r[t] = e,
    r;
}
function xe() {
  var r = C(arguments), t = r.text, e = r.options, n = r.metadata;
  e = Sn({}, e, { extract: !1 });
  var a = M(t, e, n);
  return a && a.isValid() || !1;
}
function Bn(r) {
  for (var t = 1; t < arguments.length; t++) {
    var e = arguments[t] != null ? arguments[t] : {}, n = Object.keys(e);
    typeof Object.getOwnPropertySymbols == "function" &&
    (n = n.concat(
      Object.getOwnPropertySymbols(e).filter(function (a) {
        return Object.getOwnPropertyDescriptor(e, a).enumerable;
      }),
    )),
      n.forEach(function (a) {
        Rn(r, a, e[a]);
      });
  }
  return r;
}
function Rn(r, t, e) {
  return t in r
    ? Object.defineProperty(r, t, {
      value: e,
      enumerable: !0,
      configurable: !0,
      writable: !0,
    })
    : r[t] = e,
    r;
}
function ve() {
  var r = C(arguments), t = r.text, e = r.options, n = r.metadata;
  e = Bn({}, e, { extract: !1 });
  var a = M(t, e, n);
  return a && a.isPossible() || !1;
}
function Rt(r, t) {
  for (var e = 0; e < t.length; e++) {
    var n = t[e];
    n.enumerable = n.enumerable || !1,
      n.configurable = !0,
      "value" in n && (n.writable = !0),
      Object.defineProperty(r, n.key, n);
  }
}
function On(r, t, e) {
  return t && Rt(r.prototype, t), e && Rt(r, e), r;
}
function Ot(r, t) {
  if (!(r instanceof t)) {
    throw new TypeError("Cannot call a class as a function");
  }
}
var wt = function r(t, e) {
    var n = arguments.length > 2 && arguments[2] !== void 0
        ? arguments[2]
        : null,
      a = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : null;
    Ot(this, r), this.key = t, this.value = e, this.next = n, this.prev = a;
  },
  Lt = function () {
    function r() {
      var t = arguments.length > 0 && arguments[0] !== void 0
        ? arguments[0]
        : 10;
      Ot(this, r),
        this.size = 0,
        this.limit = t,
        this.head = null,
        this.tail = null,
        this.cache = {};
    }
    return On(r, [{
      key: "put",
      value: function (e, n) {
        if (this.ensureLimit(), !this.head) {
          this.head = this.tail = new wt(e, n);
        } else {
          var a = new wt(e, n, this.head);
          this.head.prev = a, this.head = a;
        }
        this.cache[e] = this.head, this.size++;
      },
    }, {
      key: "get",
      value: function (e) {
        if (this.cache[e]) {
          var n = this.cache[e].value;
          return this.remove(e), this.put(e, n), n;
        }
        console.log("Item not available in cache for key ".concat(e));
      },
    }, {
      key: "ensureLimit",
      value: function () {
        this.size === this.limit && this.remove(this.tail.key);
      },
    }, {
      key: "remove",
      value: function (e) {
        var n = this.cache[e];
        n.prev !== null ? n.prev.next = n.next : this.head = n.next,
          n.next !== null ? n.next.prev = n.prev : this.tail = n.prev,
          delete this.cache[e],
          this.size--;
      },
    }, {
      key: "clear",
      value: function () {
        this.head = null, this.tail = null, this.size = 0, this.cache = {};
      },
    }]),
      r;
  }();
function wn(r, t) {
  if (!(r instanceof t)) {
    throw new TypeError("Cannot call a class as a function");
  }
}
function Mt(r, t) {
  for (var e = 0; e < t.length; e++) {
    var n = t[e];
    n.enumerable = n.enumerable || !1,
      n.configurable = !0,
      "value" in n && (n.writable = !0),
      Object.defineProperty(r, n.key, n);
  }
}
function Ln(r, t, e) {
  return t && Mt(r.prototype, t), e && Mt(r, e), r;
}
var kt = function () {
  function r(t) {
    wn(this, r), this.cache = new Lt(t);
  }
  return Ln(r, [{
    key: "getPatternForRegExp",
    value: function (e) {
      var n = this.cache.get(e);
      return n || (n = new RegExp("^" + e), this.cache.put(e, n)), n;
    },
  }]),
    r;
}();
function k(r, t) {
  if (r < 0 || t <= 0 || t < r) throw new TypeError();
  return "{".concat(r, ",").concat(t, "}");
}
function oe(r, t) {
  var e = t.search(r);
  return e >= 0 ? t.slice(0, e) : t;
}
function Gt(r, t) {
  return r.indexOf(t) === 0;
}
function Ut(r, t) {
  return r.indexOf(t, r.length - t.length) === r.length - t.length;
}
var Vt = " \xA0\u1680\u180E\u2000-\u200A\u2028\u2029\u202F\u205F\u3000",
  G = "[".concat(Vt, "]"),
  Ht = "[^".concat(Vt, "]"),
  Wt =
    "0-9\xB2\xB3\xB9\xBC-\xBE\u0660-\u0669\u06F0-\u06F9\u07C0-\u07C9\u0966-\u096F\u09E6-\u09EF\u09F4-\u09F9\u0A66-\u0A6F\u0AE6-\u0AEF\u0B66-\u0B6F\u0B72-\u0B77\u0BE6-\u0BF2\u0C66-\u0C6F\u0C78-\u0C7E\u0CE6-\u0CEF\u0D66-\u0D75\u0E50-\u0E59\u0ED0-\u0ED9\u0F20-\u0F33\u1040-\u1049\u1090-\u1099\u1369-\u137C\u16EE-\u16F0\u17E0-\u17E9\u17F0-\u17F9\u1810-\u1819\u1946-\u194F\u19D0-\u19DA\u1A80-\u1A89\u1A90-\u1A99\u1B50-\u1B59\u1BB0-\u1BB9\u1C40-\u1C49\u1C50-\u1C59\u2070\u2074-\u2079\u2080-\u2089\u2150-\u2182\u2185-\u2189\u2460-\u249B\u24EA-\u24FF\u2776-\u2793\u2CFD\u3007\u3021-\u3029\u3038-\u303A\u3192-\u3195\u3220-\u3229\u3248-\u324F\u3251-\u325F\u3280-\u3289\u32B1-\u32BF\uA620-\uA629\uA6E6-\uA6EF\uA830-\uA835\uA8D0-\uA8D9\uA900-\uA909\uA9D0-\uA9D9\uAA50-\uAA59\uABF0-\uABF9\uFF10-\uFF19",
  Mn =
    "0-9\u0660-\u0669\u06F0-\u06F9\u07C0-\u07C9\u0966-\u096F\u09E6-\u09EF\u0A66-\u0A6F\u0AE6-\u0AEF\u0B66-\u0B6F\u0BE6-\u0BEF\u0C66-\u0C6F\u0CE6-\u0CEF\u0D66-\u0D6F\u0E50-\u0E59\u0ED0-\u0ED9\u0F20-\u0F29\u1040-\u1049\u1090-\u1099\u17E0-\u17E9\u1810-\u1819\u1946-\u194F\u19D0-\u19D9\u1A80-\u1A89\u1A90-\u1A99\u1B50-\u1B59\u1BB0-\u1BB9\u1C40-\u1C49\u1C50-\u1C59\uA620-\uA629\uA8D0-\uA8D9\uA900-\uA909\uA9D0-\uA9D9\uAA50-\uAA59\uABF0-\uABF9\uFF10-\uFF19",
  Yt = "[".concat(Mn, "]"),
  $t =
    "A-Za-z\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u0527\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0\u08A2-\u08AC\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0977\u0979-\u097F\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C33\u0C35-\u0C39\u0C3D\u0C58\u0C59\u0C60\u0C61\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D60\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F4\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1877\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191C\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19C1-\u19C7\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2183\u2184\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005\u3006\u3031-\u3035\u303B\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FCC\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA697\uA6A0-\uA6E5\uA717-\uA71F\uA722-\uA788\uA78B-\uA78E\uA790-\uA793\uA7A0-\uA7AA\uA7F8-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA80-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uABC0-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC",
  kn = "[".concat($t, "]"),
  Gn = new RegExp(kn),
  Un =
    "$\xA2-\xA5\u058F\u060B\u09F2\u09F3\u09FB\u0AF1\u0BF9\u0E3F\u17DB\u20A0-\u20B9\uA838\uFDFC\uFE69\uFF04\uFFE0\uFFE1\uFFE5\uFFE6",
  Vn = "[".concat(Un, "]"),
  Hn = new RegExp(Vn),
  Wn =
    "\u0300-\u036F\u0483-\u0487\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u0610-\u061A\u064B-\u065F\u0670\u06D6-\u06DC\u06DF-\u06E4\u06E7\u06E8\u06EA-\u06ED\u0711\u0730-\u074A\u07A6-\u07B0\u07EB-\u07F3\u0816-\u0819\u081B-\u0823\u0825-\u0827\u0829-\u082D\u0859-\u085B\u08E4-\u08FE\u0900-\u0902\u093A\u093C\u0941-\u0948\u094D\u0951-\u0957\u0962\u0963\u0981\u09BC\u09C1-\u09C4\u09CD\u09E2\u09E3\u0A01\u0A02\u0A3C\u0A41\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A70\u0A71\u0A75\u0A81\u0A82\u0ABC\u0AC1-\u0AC5\u0AC7\u0AC8\u0ACD\u0AE2\u0AE3\u0B01\u0B3C\u0B3F\u0B41-\u0B44\u0B4D\u0B56\u0B62\u0B63\u0B82\u0BC0\u0BCD\u0C3E-\u0C40\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C62\u0C63\u0CBC\u0CBF\u0CC6\u0CCC\u0CCD\u0CE2\u0CE3\u0D41-\u0D44\u0D4D\u0D62\u0D63\u0DCA\u0DD2-\u0DD4\u0DD6\u0E31\u0E34-\u0E3A\u0E47-\u0E4E\u0EB1\u0EB4-\u0EB9\u0EBB\u0EBC\u0EC8-\u0ECD\u0F18\u0F19\u0F35\u0F37\u0F39\u0F71-\u0F7E\u0F80-\u0F84\u0F86\u0F87\u0F8D-\u0F97\u0F99-\u0FBC\u0FC6\u102D-\u1030\u1032-\u1037\u1039\u103A\u103D\u103E\u1058\u1059\u105E-\u1060\u1071-\u1074\u1082\u1085\u1086\u108D\u109D\u135D-\u135F\u1712-\u1714\u1732-\u1734\u1752\u1753\u1772\u1773\u17B4\u17B5\u17B7-\u17BD\u17C6\u17C9-\u17D3\u17DD\u180B-\u180D\u18A9\u1920-\u1922\u1927\u1928\u1932\u1939-\u193B\u1A17\u1A18\u1A56\u1A58-\u1A5E\u1A60\u1A62\u1A65-\u1A6C\u1A73-\u1A7C\u1A7F\u1B00-\u1B03\u1B34\u1B36-\u1B3A\u1B3C\u1B42\u1B6B-\u1B73\u1B80\u1B81\u1BA2-\u1BA5\u1BA8\u1BA9\u1BAB\u1BE6\u1BE8\u1BE9\u1BED\u1BEF-\u1BF1\u1C2C-\u1C33\u1C36\u1C37\u1CD0-\u1CD2\u1CD4-\u1CE0\u1CE2-\u1CE8\u1CED\u1CF4\u1DC0-\u1DE6\u1DFC-\u1DFF\u20D0-\u20DC\u20E1\u20E5-\u20F0\u2CEF-\u2CF1\u2D7F\u2DE0-\u2DFF\u302A-\u302D\u3099\u309A\uA66F\uA674-\uA67D\uA69F\uA6F0\uA6F1\uA802\uA806\uA80B\uA825\uA826\uA8C4\uA8E0-\uA8F1\uA926-\uA92D\uA947-\uA951\uA980-\uA982\uA9B3\uA9B6-\uA9B9\uA9BC\uAA29-\uAA2E\uAA31\uAA32\uAA35\uAA36\uAA43\uAA4C\uAAB0\uAAB2-\uAAB4\uAAB7\uAAB8\uAABE\uAABF\uAAC1\uAAEC\uAAED\uAAF6\uABE5\uABE8\uABED\uFB1E\uFE00-\uFE0F\uFE20-\uFE26",
  Yn = "[".concat(Wn, "]"),
  jn = new RegExp(Yn),
  Xn = "\0-\x7F",
  Zn = "\x80-\xFF",
  zn = "\u0100-\u017F",
  Kn = "\u1E00-\u1EFF",
  Jn = "\u0180-\u024F",
  Qn = "\u0300-\u036F",
  qn = new RegExp("[" + Xn + Zn + zn + Kn + Jn + Qn + "]");
function lt(r) {
  return !Gn.test(r) && !jn.test(r) ? !1 : qn.test(r);
}
function st(r) {
  return r === "%" || Hn.test(r);
}
var jt = {
  POSSIBLE: function (t, e, n) {
    return !0;
  },
  VALID: function (t, e, n) {
    return !(!P(t, void 0, n) || !ft(t, e.toString(), n));
  },
  STRICT_GROUPING: function (t, e, n, a) {
    var i = e.toString();
    return !P(t, void 0, n) || !ft(t, i, n) || Zt(t, i) || !Xt(t, n) ? !1
    : zt(t, e, n, t0, a);
  },
  EXACT_GROUPING: function (t, e, n, a) {
    var i = e.toString();
    return !P(t, void 0, n) || !ft(t, i, n) || Zt(t, i) || !Xt(t, n) ? !1
    : zt(t, e, n, e0, a);
  },
};
function ft(r, t, e) {
  for (var n = 0; n < t.length - 1; n++) {
    var a = t.charAt(n);
    if (a === "x" || a === "X") {
      var i = t.charAt(n + 1);
      if (i === "x" || i === "X") {
        if (n++, util.isNumberMatch(r, t.substring(n)) != MatchType.NSN_MATCH) {
          return !1;
        }
      } else if (x(t.substring(n)) !== r.ext) return !1;
    }
  }
  return !0;
}
function Xt(r, t) {
  if (r.getCountryCodeSource() != "FROM_DEFAULT_COUNTRY") return !0;
  var e = util.getRegionCodeForCountryCode(r.getCountryCode()),
    n = util.getMetadataForRegion(e);
  if (n == null) return !0;
  var a = util.getNationalSignificantNumber(r),
    i = util.chooseFormattingPatternForNumber(n.numberFormats(), a);
  if (i && i.getNationalPrefixFormattingRule().length > 0) {
    if (
      i.getNationalPrefixOptionalWhenFormatting() ||
      PhoneNumberUtil.formattingRuleHasFirstGroupOnly(
        i.getNationalPrefixFormattingRule(),
      )
    ) {
      return !0;
    }
    var d = PhoneNumberUtil.normalizeDigitsOnly(r.getRawInput());
    return util.maybeStripNationalPrefixAndCarrierCode(d, n, null);
  }
  return !0;
}
function Zt(r, t) {
  var e = t.indexOf("/");
  if (e < 0) return !1;
  var n = t.indexOf("/", e + 1);
  if (n < 0) return !1;
  var a =
    r.getCountryCodeSource() === CountryCodeSource.FROM_NUMBER_WITH_PLUS_SIGN ||
    r.getCountryCodeSource() ===
      CountryCodeSource.FROM_NUMBER_WITHOUT_PLUS_SIGN;
  return a &&
      PhoneNumberUtil.normalizeDigitsOnly(t.substring(0, e)) ===
        String(r.getCountryCode())
    ? t.slice(n + 1).indexOf("/") >= 0
    : !0;
}
function zt(r, t, e, n, a) {
  var i = normalizeDigits(t, !0), d = Kt(e, r, null);
  if (n(e, r, i, d)) return !0;
  var u = MetadataManager.getAlternateFormatsForCountry(r.getCountryCode()),
    o = util.getNationalSignificantNumber(r);
  if (u) {
    for (
      var $ = u.numberFormats(),
        f = Array.isArray($),
        l = 0,
        $ = f ? $ : $[Symbol.iterator]();;
    ) {
      var c;
      if (f) {
        if (l >= $.length) break;
        c = $[l++];
      } else {
        if (l = $.next(), l.done) break;
        c = l.value;
      }
      var v = c;
      if (v.leadingDigitsPatterns().length > 0) {
        var O = a.getPatternForRegExp("^" + v.leadingDigitsPatterns()[0]);
        if (!O.test(o)) continue;
      }
      if (d = Kt(e, r, v), n(e, r, i, d)) return !0;
    }
  }
  return !1;
}
function Kt(r, t, e) {
  if (e) {
    var n = util.getNationalSignificantNumber(t);
    return util.formatNsnUsingPattern(n, e, "RFC3966", r).split("-");
  }
  var a = formatNumber(t, "RFC3966", r), i = a.indexOf(";");
  i < 0 && (i = a.length);
  var d = a.indexOf("-") + 1;
  return a.slice(d, i).split("-");
}
function e0(r, t, e, n) {
  var a = e.split(NON_DIGITS_PATTERN),
    i = t.hasExtension() ? a.length - 2 : a.length - 1;
  if (a.length == 1 || a[i].contains(util.getNationalSignificantNumber(t))) {
    return !0;
  }
  for (var d = n.length - 1; d > 0 && i >= 0;) {
    if (a[i] !== n[d]) return !1;
    d--, i--;
  }
  return i >= 0 && Ut(a[i], n[0]);
}
function t0(r, t, e, n) {
  var a = 0;
  if (t.getCountryCodeSource() !== CountryCodeSource.FROM_DEFAULT_COUNTRY) {
    var i = String(t.getCountryCode());
    a = e.indexOf(i) + i.length();
  }
  for (var d = 0; d < n.length; d++) {
    if (a = e.indexOf(n[d], a), a < 0) return !1;
    if (a += n[d].length(), d == 0 && a < e.length()) {
      var u = util.getRegionCodeForCountryCode(t.getCountryCode());
      if (
        util.getNddPrefixForRegion(u, !0) != null &&
        Character.isDigit(e.charAt(a))
      ) {
        var o = util.getNationalSignificantNumber(t);
        return Gt(e.slice(a - n[d].length), o);
      }
    }
  }
  return e.slice(a).contains(t.getExtension());
}
var r0 = /[\\/] *x/;
function $e(r) {
  return oe(r0, r);
}
var n0 = /(?:(?:[0-3]?\d\/[01]?\d)|(?:[01]?\d\/[0-3]?\d))\/(?:[12]\d)?\d{2}/,
  a0 = /[12]\d{3}[-/]?[01]\d[-/]?[0-3]\d +[0-2]\d$/,
  i0 = /^:[0-5]\d/;
function le(r, t, e) {
  if (n0.test(r)) return !1;
  if (a0.test(r)) {
    var n = e.slice(t + r.length);
    if (i0.test(n)) return !1;
  }
  return !0;
}
var Pe = "(\\[\uFF08\uFF3B",
  mt = ")\\]\uFF09\uFF3D",
  Fe = "[^".concat(Pe).concat(mt, "]"),
  ct = "[".concat(Pe).concat(_, "]"),
  d0 = new RegExp("^" + ct),
  u0 = k(0, 3),
  o0 = new RegExp(
    "^(?:[" + Pe + "])?(?:" + Fe + "+[" + mt + "])?" + Fe + "+(?:[" + Pe + "]" +
      Fe + "+[" + mt + "])" + u0 + Fe + "*$",
  ),
  $0 = /\d{1,5}-+\d{1,5}\s{0,4}\(\d{1,4}/;
function se(r, t, e, n) {
  if (!(!o0.test(r) || $0.test(r))) {
    if (n !== "POSSIBLE") {
      if (t > 0 && !d0.test(r)) {
        var a = e[t - 1];
        if (st(a) || lt(a)) return !1;
      }
      var i = t + r.length;
      if (i < e.length) {
        var d = e[i];
        if (st(d) || lt(d)) return !1;
      }
    }
    return !0;
  }
}
function l0(r) {
  for (var t = 1; t < arguments.length; t++) {
    var e = arguments[t] != null ? arguments[t] : {}, n = Object.keys(e);
    typeof Object.getOwnPropertySymbols == "function" &&
    (n = n.concat(
      Object.getOwnPropertySymbols(e).filter(function (a) {
        return Object.getOwnPropertyDescriptor(e, a).enumerable;
      }),
    )),
      n.forEach(function (a) {
        Ee(r, a, e[a]);
      });
  }
  return r;
}
function s0(r, t) {
  if (!(r instanceof t)) {
    throw new TypeError("Cannot call a class as a function");
  }
}
function Jt(r, t) {
  for (var e = 0; e < t.length; e++) {
    var n = t[e];
    n.enumerable = n.enumerable || !1,
      n.configurable = !0,
      "value" in n && (n.writable = !0),
      Object.defineProperty(r, n.key, n);
  }
}
function f0(r, t, e) {
  return t && Jt(r.prototype, t), e && Jt(r, e), r;
}
function Ee(r, t, e) {
  return t in r
    ? Object.defineProperty(r, t, {
      value: e,
      enumerable: !0,
      configurable: !0,
      writable: !0,
    })
    : r[t] = e,
    r;
}
var m0 = D("matching"),
  c0 = [
    "\\/+(.*)/",
    "(\\([^(]*)",
    "(?:".concat(G, "-|-").concat(G, ")").concat(G, "*(.+)"),
    "[\u2012-\u2015\uFF0D]".concat(G, "*(.+)"),
    "\\.+".concat(G, "*([^.]+)"),
    "".concat(G, "+(").concat(Ht, "+)"),
  ],
  h0 = k(0, 2),
  g0 = k(0, 4),
  Qt = he + ge,
  p0 = k(0, Qt),
  qt = "[".concat(h, "]") + g0,
  er = Yt + k(1, Qt),
  N0 = "(?:" + ct + qt + ")" + h0 + er + "(?:" + qt + er + ")" + p0 + "(?:" +
    m0 + ")?",
  tr = new RegExp("[^".concat(Wt).concat($t, "#]+$"));
var C0 = Number.MAX_SAFE_INTEGER || Math.pow(2, 53) - 1,
  R = function () {
    function r() {
      var t = arguments.length > 0 && arguments[0] !== void 0
          ? arguments[0]
          : "",
        e = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {},
        n = arguments.length > 2 ? arguments[2] : void 0;
      if (
        s0(this, r),
          Ee(this, "state", "NOT_READY"),
          Ee(this, "searchIndex", 0),
          Ee(this, "regExpCache", new kt(32)),
          e = l0({}, e, {
            defaultCallingCode: e.defaultCallingCode,
            defaultCountry: e.defaultCountry && L(e.defaultCountry, n)
              ? e.defaultCountry
              : void 0,
            leniency: e.leniency || e.extended ? "POSSIBLE" : "VALID",
            maxTries: e.maxTries || C0,
          }),
          !e.leniency
      ) {
        throw new TypeError("`Leniency` not supplied");
      }
      if (e.maxTries < 0) throw new TypeError("`maxTries` not supplied");
      if (
        this.text = t,
          this.options = e,
          this.metadata = n,
          this.leniency = jt[e.leniency],
          !this.leniency
      ) {
        throw new TypeError("Unknown leniency: ".concat(e.leniency, "."));
      }
      this.maxTries = e.maxTries, this.PATTERN = new RegExp(N0, "ig");
    }
    return f0(r, [{
      key: "find",
      value: function () {
        for (
          var e;
          this.maxTries > 0 && (e = this.PATTERN.exec(this.text)) !== null;
        ) {
          var n = e[0], a = e.index;
          if (n = $e(n), le(n, a, this.text)) {
            var i = this.parseAndVerify(n, a, this.text) ||
              this.extractInnerMatch(n, a, this.text);
            if (i) {
              if (this.options.v2) {
                var d = new B(
                  i.country || i.countryCallingCode,
                  i.phone,
                  this.metadata,
                );
                return i.ext && (d.ext = i.ext),
                  { startsAt: i.startsAt, endsAt: i.endsAt, number: d };
              }
              return i;
            }
          }
          this.maxTries--;
        }
      },
    }, {
      key: "extractInnerMatch",
      value: function (e, n, a) {
        for (var i = 0, d = c0; i < d.length; i++) {
          for (
            var u = d[i], o = !0, $ = void 0, f = new RegExp(u, "g");
            this.maxTries > 0 && ($ = f.exec(e)) !== null;
          ) {
            if (o) {
              var l = oe(tr, e.slice(0, $.index)),
                c = this.parseAndVerify(l, n, a);
              if (c) return c;
              this.maxTries--, o = !1;
            }
            var v = oe(tr, $[1]),
              O = e.indexOf(v, $.index),
              w = this.parseAndVerify(v, n + O, a);
            if (w) return w;
            this.maxTries--;
          }
        }
      },
    }, {
      key: "parseAndVerify",
      value: function (e, n, a) {
        if (!!se(e, n, a, this.options.leniency)) {
          var i = g(e, {
            extended: !0,
            defaultCountry: this.options.defaultCountry,
            defaultCallingCode: this.options.defaultCallingCode,
          }, this.metadata);
          if (
            !!i.possible && this.leniency(i, e, this.metadata, this.regExpCache)
          ) {
            var d = { startsAt: n, endsAt: n + e.length, phone: i.phone };
            return i.country && i.country !== "001"
              ? d.country = i.country
              : d.countryCallingCode = i.countryCallingCode,
              i.ext && (d.ext = i.ext),
              d;
          }
        }
      },
    }, {
      key: "hasNext",
      value: function () {
        return this.state === "NOT_READY" &&
          (this.lastMatch = this.find(),
            this.lastMatch ? this.state = "READY" : this.state = "DONE"),
          this.state === "READY";
      },
    }, {
      key: "next",
      value: function () {
        if (!this.hasNext()) throw new Error("No next element");
        var e = this.lastMatch;
        return this.lastMatch = null, this.state = "NOT_READY", e;
      },
    }]),
      r;
  }();
function ht(r, t, e) {
  for (var n = new R(r, t, e), a = []; n.hasNext();) a.push(n.next());
  return a;
}
function j() {
  var r = C(arguments), t = r.text, e = r.options, n = r.metadata;
  return ht(t, e, n);
}
function A0(r, t, e) {
  return t in r
    ? Object.defineProperty(r, t, {
      value: e,
      enumerable: !0,
      configurable: !0,
      writable: !0,
    })
    : r[t] = e,
    r;
}
function X() {
  var r = C(arguments),
    t = r.text,
    e = r.options,
    n = r.metadata,
    a = new R(t, e, n);
  return A0({}, Symbol.iterator, function () {
    return {
      next: function () {
        return a.hasNext() ? { done: !1, value: a.next() } : { done: !0 };
      },
    };
  });
}
function De(r) {
  return typeof Symbol == "function" && typeof Symbol.iterator == "symbol"
    ? De = function (e) {
      return typeof e;
    }
    : De = function (e) {
      return e && typeof Symbol == "function" && e.constructor === Symbol &&
          e !== Symbol.prototype
        ? "symbol"
        : typeof e;
    },
    De(r);
}
function rr(r) {
  for (var t = 1; t < arguments.length; t++) {
    var e = arguments[t] != null ? arguments[t] : {}, n = Object.keys(e);
    typeof Object.getOwnPropertySymbols == "function" &&
    (n = n.concat(
      Object.getOwnPropertySymbols(e).filter(function (a) {
        return Object.getOwnPropertyDescriptor(e, a).enumerable;
      }),
    )),
      n.forEach(function (a) {
        b0(r, a, e[a]);
      });
  }
  return r;
}
function b0(r, t, e) {
  return t in r
    ? Object.defineProperty(r, t, {
      value: e,
      enumerable: !0,
      configurable: !0,
      writable: !0,
    })
    : r[t] = e,
    r;
}
function Te(r, t, e, n) {
  var a = gt(t, e, n);
  return j(r, a.options, a.metadata);
}
function gt(r, t, e) {
  return e
    ? r && (t = rr({}, t, { defaultCountry: r }))
    : t
    ? (e = t, r ? y0(r) ? t = r : t = { defaultCountry: r } : t = void 0)
    : (e = r, t = void 0),
    { options: rr({}, t, { v2: !0 }), metadata: e };
}
var y0 = function (t) {
  return De(t) === "object";
};
function Ie(r, t, e, n) {
  var a = gt(t, e, n);
  return X(r, a.options, a.metadata);
}
function x0(r, t) {
  if (!(r instanceof t)) {
    throw new TypeError("Cannot call a class as a function");
  }
}
function nr(r, t) {
  for (var e = 0; e < t.length; e++) {
    var n = t[e];
    n.enumerable = n.enumerable || !1,
      n.configurable = !0,
      "value" in n && (n.writable = !0),
      Object.defineProperty(r, n.key, n);
  }
}
function v0(r, t, e) {
  return t && nr(r.prototype, t), e && nr(r, e), r;
}
function P0(r, t, e) {
  return t in r
    ? Object.defineProperty(r, t, {
      value: e,
      enumerable: !0,
      configurable: !0,
      writable: !0,
    })
    : r[t] = e,
    r;
}
var ar = function () {
  function r(t) {
    var e = this, n = t.onCountryChange, a = t.onCallingCodeChange;
    x0(this, r),
      P0(this, "update", function (i) {
        for (var d = 0, u = Object.keys(i); d < u.length; d++) {
          var o = u[d];
          e[o] = i[o];
        }
      }),
      this.onCountryChange = n,
      this.onCallingCodeChange = a;
  }
  return v0(r, [{
    key: "reset",
    value: function (e, n) {
      this.international = !1,
        this.IDDPrefix = void 0,
        this.missingPlus = void 0,
        this.callingCode = void 0,
        this.digits = "",
        this.resetNationalSignificantNumber(),
        this.initCountryAndCallingCode(e, n);
    },
  }, {
    key: "resetNationalSignificantNumber",
    value: function () {
      this.nationalSignificantNumber = this.getNationalDigits(),
        this.nationalSignificantNumberMatchesInput = !0,
        this.nationalPrefix = void 0,
        this.carrierCode = void 0,
        this.complexPrefixBeforeNationalSignificantNumber = void 0;
    },
  }, {
    key: "initCountryAndCallingCode",
    value: function (e, n) {
      this.setCountry(e), this.setCallingCode(n);
    },
  }, {
    key: "setCountry",
    value: function (e) {
      this.country = e, this.onCountryChange(e);
    },
  }, {
    key: "setCallingCode",
    value: function (e) {
      return this.callingCode = e, this.onCallingCodeChange(this.country, e);
    },
  }, {
    key: "startInternationalNumber",
    value: function () {
      this.international = !0, this.initCountryAndCallingCode();
    },
  }, {
    key: "appendDigits",
    value: function (e) {
      this.digits += e;
    },
  }, {
    key: "appendNationalSignificantNumberDigits",
    value: function (e) {
      this.nationalSignificantNumber += e;
    },
  }, {
    key: "getNationalDigits",
    value: function () {
      return this.international
        ? this.digits.slice(
          (this.IDDPrefix ? this.IDDPrefix.length : 0) + (this.callingCode
            ? this.callingCode.length
            : 0),
        )
        : this.digits;
    },
  }, {
    key: "getDigitsWithoutInternationalPrefix",
    value: function () {
      return this.international && this.IDDPrefix
        ? this.digits.slice(this.IDDPrefix.length)
        : this.digits;
    },
  }]),
    r;
}();
var A = "x", pt = new RegExp(A);
function fe(r, t) {
  if (t < 1) return "";
  for (var e = ""; t > 1;) t & 1 && (e += r), t >>= 1, r += r;
  return e + r;
}
function Nt(r, t) {
  return r[t] === ")" && t++, F0(r.slice(0, t));
}
function F0(r) {
  for (var t = [], e = 0; e < r.length;) {
    r[e] === "(" ? t.push(e) : r[e] === ")" && t.pop(), e++;
  }
  var n = 0, a = "";
  t.push(r.length);
  for (var i = 0, d = t; i < d.length; i++) {
    var u = d[i];
    a += r.slice(n, u), n = u + 1;
  }
  return a;
}
function ir(r, t, e) {
  for (
    var n = e.split(""),
      a = Array.isArray(n),
      i = 0,
      n = a ? n : n[Symbol.iterator]();;
  ) {
    var d;
    if (a) {
      if (i >= n.length) break;
      d = n[i++];
    } else {
      if (i = n.next(), i.done) break;
      d = i.value;
    }
    var u = d;
    if (r.slice(t + 1).search(pt) < 0) return;
    t = r.search(pt), r = r.replace(pt, u);
  }
  return [r, t];
}
function Ct(r, t, e) {
  var n = e.metadata,
    a = e.shouldTryNationalPrefixFormattingRule,
    i = e.getSeparatorAfterNationalPrefix,
    d = new RegExp("^(?:".concat(t.pattern(), ")$"));
  if (d.test(r.nationalSignificantNumber)) {
    return E0(r, t, {
      metadata: n,
      shouldTryNationalPrefixFormattingRule: a,
      getSeparatorAfterNationalPrefix: i,
    });
  }
}
function dr(r, t) {
  return T(r, t) === "IS_POSSIBLE";
}
function E0(r, t, e) {
  var n = e.metadata,
    a = e.shouldTryNationalPrefixFormattingRule,
    i = e.getSeparatorAfterNationalPrefix,
    d = r.nationalSignificantNumber,
    u = r.international,
    o = r.nationalPrefix,
    $ = r.carrierCode;
  if (a(t)) {
    var f = ur(r, t, {
      useNationalPrefixFormattingRule: !0,
      getSeparatorAfterNationalPrefix: i,
      metadata: n,
    });
    if (f) return f;
  }
  return ur(r, t, {
    useNationalPrefixFormattingRule: !1,
    getSeparatorAfterNationalPrefix: i,
    metadata: n,
  });
}
function ur(r, t, e) {
  var n = e.metadata,
    a = e.useNationalPrefixFormattingRule,
    i = e.getSeparatorAfterNationalPrefix,
    d = q(r.nationalSignificantNumber, t, {
      carrierCode: r.carrierCode,
      useInternationalFormat: r.international,
      withNationalPrefix: a,
      metadata: n,
    });
  if (
    a || (r.nationalPrefix
      ? d = r.nationalPrefix + i(t) + d
      : r.complexPrefixBeforeNationalSignificantNumber &&
        (d = r.complexPrefixBeforeNationalSignificantNumber + " " + d)),
      D0(d, r)
  ) {
    return d;
  }
}
function D0(r, t) {
  return x(r) === t.getNationalDigits();
}
function T0(r, t) {
  if (!(r instanceof t)) {
    throw new TypeError("Cannot call a class as a function");
  }
}
function or(r, t) {
  for (var e = 0; e < t.length; e++) {
    var n = t[e];
    n.enumerable = n.enumerable || !1,
      n.configurable = !0,
      "value" in n && (n.writable = !0),
      Object.defineProperty(r, n.key, n);
  }
}
function I0(r, t, e) {
  return t && or(r.prototype, t), e && or(r, e), r;
}
function $r(r, t, e) {
  return t in r
    ? Object.defineProperty(r, t, {
      value: e,
      enumerable: !0,
      configurable: !0,
      writable: !0,
    })
    : r[t] = e,
    r;
}
var At = "9",
  S0 = 15,
  _0 = fe(At, S0),
  B0 = /[- ]/,
  Se = !0,
  R0 = Se && function () {
    return /\[([^\[\]])*\]/g;
  },
  O0 = Se && function () {
    return /\d(?=[^,}][^,}])/g;
  },
  w0 = new RegExp("^[" + h + "]*(\\$\\d[" + h + "]*)+$"),
  lr = 3,
  sr = function () {
    function r(t) {
      var e = this, n = t.state, a = t.metadata;
      T0(this, r),
        $r(this, "getSeparatorAfterNationalPrefix", function (i) {
          return e.isNANP ||
              i && i.nationalPrefixFormattingRule() &&
                B0.test(i.nationalPrefixFormattingRule())
            ? " "
            : "";
        }),
        $r(this, "shouldTryNationalPrefixFormattingRule", function (i, d) {
          var u = d.international, o = d.nationalPrefix;
          if (i.nationalPrefixFormattingRule()) {
            var $ = i.usesNationalPrefix();
            if ($ && o || !$ && !u) return !0;
          }
        }),
        this.metadata = a,
        this.resetFormat();
    }
    return I0(r, [{
      key: "resetFormat",
      value: function () {
        this.chosenFormat = void 0,
          this.template = void 0,
          this.nationalNumberTemplate = void 0,
          this.populatedNationalNumberTemplate = void 0,
          this.populatedNationalNumberTemplatePosition = -1;
      },
    }, {
      key: "reset",
      value: function (e, n) {
        this.resetFormat(),
          e
            ? (this.isNANP = e.callingCode() === "1",
              this.matchingFormats = e.formats(),
              n.nationalSignificantNumber && this.narrowDownMatchingFormats(n))
            : (this.isNANP = void 0, this.matchingFormats = []);
      },
    }, {
      key: "format",
      value: function (e, n) {
        var a = this;
        if (dr(n.nationalSignificantNumber, this.metadata)) {
          for (
            var i = this.matchingFormats,
              d = Array.isArray(i),
              u = 0,
              i = d ? i : i[Symbol.iterator]();;
          ) {
            var o;
            if (d) {
              if (u >= i.length) break;
              o = i[u++];
            } else {
              if (u = i.next(), u.done) break;
              o = u.value;
            }
            var $ = o,
              f = Ct(n, $, {
                metadata: this.metadata,
                shouldTryNationalPrefixFormattingRule: function (c) {
                  return a.shouldTryNationalPrefixFormattingRule(c, {
                    international: n.international,
                    nationalPrefix: n.nationalPrefix,
                  });
                },
                getSeparatorAfterNationalPrefix:
                  this.getSeparatorAfterNationalPrefix,
              });
            if (f) {
              return this.resetFormat(),
                this.chosenFormat = $,
                this.setNationalNumberTemplate(f.replace(/\d/g, A), n),
                this.populatedNationalNumberTemplate = f,
                this.populatedNationalNumberTemplatePosition = this.template
                  .lastIndexOf(A),
                f;
            }
          }
        }
        return this.formatNationalNumberWithNextDigits(e, n);
      },
    }, {
      key: "formatNationalNumberWithNextDigits",
      value: function (e, n) {
        var a = this.chosenFormat, i = this.chooseFormat(n);
        if (i) {
          return i === a
            ? this.formatNextNationalNumberDigits(e)
            : this.formatNextNationalNumberDigits(n.getNationalDigits());
        }
      },
    }, {
      key: "narrowDownMatchingFormats",
      value: function (e) {
        var n = this,
          a = e.nationalSignificantNumber,
          i = e.nationalPrefix,
          d = e.international,
          u = a,
          o = u.length - lr;
        o < 0 && (o = 0),
          this.matchingFormats = this.matchingFormats.filter(function ($) {
            return n.formatSuits($, d, i) && n.formatMatches($, u, o);
          }),
          this.chosenFormat &&
          this.matchingFormats.indexOf(this.chosenFormat) === -1 &&
          this.resetFormat();
      },
    }, {
      key: "formatSuits",
      value: function (e, n, a) {
        return !(a && !e.usesNationalPrefix() &&
            !e.nationalPrefixIsOptionalWhenFormattingInNationalFormat() ||
          !n && !a &&
            e.nationalPrefixIsMandatoryWhenFormattingInNationalFormat());
      },
    }, {
      key: "formatMatches",
      value: function (e, n, a) {
        var i = e.leadingDigitsPatterns().length;
        if (i === 0 || n.length < lr) return !0;
        a = Math.min(a, i - 1);
        var d = e.leadingDigitsPatterns()[a];
        return new RegExp("^(".concat(d, ")")).test(n);
      },
    }, {
      key: "getFormatFormat",
      value: function (e, n) {
        return n ? e.internationalFormat() : e.format();
      },
    }, {
      key: "chooseFormat",
      value: function (e) {
        var n = this,
          a = function () {
            if (d) {
              if (u >= i.length) return "break";
              o = i[u++];
            } else {
              if (u = i.next(), u.done) return "break";
              o = u.value;
            }
            var l = o;
            return n.chosenFormat === l
              ? "break"
              : w0.test(n.getFormatFormat(l, e.international))
              ? n.createTemplateForFormat(l, e)
                ? (n.chosenFormat = l, "break")
                : (n.matchingFormats = n.matchingFormats.filter(function (c) {
                  return c !== l;
                }),
                  "continue")
              : "continue";
          };
        e:
        for (
          var i = this.matchingFormats.slice(),
            d = Array.isArray(i),
            u = 0,
            i = d ? i : i[Symbol.iterator]();;
        ) {
          var o, $ = a();
          switch ($) {
            case "break":
              break e;
            case "continue":
              continue;
          }
        }
        return this.chosenFormat || this.resetFormat(), this.chosenFormat;
      },
    }, {
      key: "createTemplateForFormat",
      value: function (e, n) {
        if (!(Se && e.pattern().indexOf("|") >= 0)) {
          var a = this.getTemplateForFormat(e, n);
          if (a) return this.setNationalNumberTemplate(a, n), !0;
        }
      },
    }, {
      key: "getInternationalPrefixBeforeCountryCallingCode",
      value: function (e, n) {
        var a = e.IDDPrefix, i = e.missingPlus;
        return a ? n && n.spacing === !1 ? a : a + " " : i ? "" : "+";
      },
    }, {
      key: "getTemplate",
      value: function (e) {
        if (!!this.template) {
          for (
            var n = -1,
              a = 0,
              i = e.international
                ? this.getInternationalPrefixBeforeCountryCallingCode(e, {
                  spacing: !1,
                })
                : "";
            a < i.length + e.getDigitsWithoutInternationalPrefix().length;
          ) {
            n = this.template.indexOf(A, n + 1), a++;
          }
          return Nt(this.template, n + 1);
        }
      },
    }, {
      key: "setNationalNumberTemplate",
      value: function (e, n) {
        this.nationalNumberTemplate = e,
          this.populatedNationalNumberTemplate = e,
          this.populatedNationalNumberTemplatePosition = -1,
          n.international
            ? this.template =
              this.getInternationalPrefixBeforeCountryCallingCode(n).replace(
                /[\d\+]/g,
                A,
              ) + fe(A, n.callingCode.length) + " " + e
            : this.template = e;
      },
    }, {
      key: "getTemplateForFormat",
      value: function (e, n) {
        var a = n.nationalSignificantNumber,
          i = n.international,
          d = n.nationalPrefix,
          u = n.complexPrefixBeforeNationalSignificantNumber,
          o = e.pattern();
        Se && (o = o.replace(R0(), "\\d").replace(O0(), "\\d"));
        var $ = _0.match(o)[0];
        if (!(a.length > $.length)) {
          var f = new RegExp("^" + o + "$"), l = a.replace(/\d/g, At);
          f.test(l) && ($ = l);
          var c = this.getFormatFormat(e, i), v;
          if (
            this.shouldTryNationalPrefixFormattingRule(e, {
              international: i,
              nationalPrefix: d,
            })
          ) {
            var O = c.replace(dt, e.nationalPrefixFormattingRule());
            if (
              x(e.nationalPrefixFormattingRule()) === (d || "") + x("$1") &&
              (c = O, v = !0, d)
            ) {
              for (var w = d.length; w > 0;) c = c.replace(/\d/, A), w--;
            }
          }
          var E = $.replace(new RegExp(o), c).replace(new RegExp(At, "g"), A);
          return v || (u
            ? E = fe(A, u.length) + " " + E
            : d &&
              (E = fe(A, d.length) + this.getSeparatorAfterNationalPrefix(e) +
                E)),
            i && (E = Q(E)),
            E;
        }
      },
    }, {
      key: "formatNextNationalNumberDigits",
      value: function (e) {
        var n = ir(
          this.populatedNationalNumberTemplate,
          this.populatedNationalNumberTemplatePosition,
          e,
        );
        if (!n) {
          this.resetFormat();
          return;
        }
        return this.populatedNationalNumberTemplate = n[0],
          this.populatedNationalNumberTemplatePosition = n[1],
          Nt(
            this.populatedNationalNumberTemplate,
            this.populatedNationalNumberTemplatePosition + 1,
          );
      },
    }]),
      r;
  }();
function fr(r, t) {
  return k0(r) || M0(r, t) || L0();
}
function L0() {
  throw new TypeError("Invalid attempt to destructure non-iterable instance");
}
function M0(r, t) {
  var e = [], n = !0, a = !1, i = void 0;
  try {
    for (
      var d = r[Symbol.iterator](), u;
      !(n = (u = d.next()).done) && (e.push(u.value), !(t && e.length === t));
      n = !0
    );
  } catch (o) {
    a = !0, i = o;
  } finally {
    try {
      !n && d.return != null && d.return();
    } finally {
      if (a) throw i;
    }
  }
  return e;
}
function k0(r) {
  if (Array.isArray(r)) return r;
}
function G0(r, t) {
  if (!(r instanceof t)) {
    throw new TypeError("Cannot call a class as a function");
  }
}
function mr(r, t) {
  for (var e = 0; e < t.length; e++) {
    var n = t[e];
    n.enumerable = n.enumerable || !1,
      n.configurable = !0,
      "value" in n && (n.writable = !0),
      Object.defineProperty(r, n.key, n);
  }
}
function U0(r, t, e) {
  return t && mr(r.prototype, t), e && mr(r, e), r;
}
var V0 = "[" + h + p + "]+",
  H0 = new RegExp("^" + V0 + "$", "i"),
  W0 = "(?:[" + _ + "][" + h + p + "]*|[" + h + p + "]+)",
  Y0 = new RegExp("[^" + h + p + "]+.*$"),
  j0 = /[^\d\[\]]/,
  cr = function () {
    function r(t) {
      var e = t.defaultCountry,
        n = t.defaultCallingCode,
        a = t.metadata,
        i = t.onNationalSignificantNumberChange;
      G0(this, r),
        this.defaultCountry = e,
        this.defaultCallingCode = n,
        this.metadata = a,
        this.onNationalSignificantNumberChange = i;
    }
    return U0(r, [{
      key: "input",
      value: function (e, n) {
        var a = z0(e), i = fr(a, 2), d = i[0], u = i[1], o = x(d), $;
        return u && (n.digits || (n.startInternationalNumber(), o || ($ = !0))),
          o && this.inputDigits(o, n),
          { digits: o, justLeadingPlus: $ };
      },
    }, {
      key: "inputDigits",
      value: function (e, n) {
        var a = n.digits, i = a.length < 3 && a.length + e.length >= 3;
        if (
          n.appendDigits(e),
            i && this.extractIddPrefix(n),
            this.isWaitingForCountryCallingCode(n)
        ) {
          if (!this.extractCountryCallingCode(n)) return;
        } else n.appendNationalSignificantNumberDigits(e);
        n.international || this.hasExtractedNationalSignificantNumber ||
          this.extractNationalSignificantNumber(
            n.getNationalDigits(),
            n.update,
          );
      },
    }, {
      key: "isWaitingForCountryCallingCode",
      value: function (e) {
        var n = e.international, a = e.callingCode;
        return n && !a;
      },
    }, {
      key: "extractCountryCallingCode",
      value: function (e) {
        var n = ne(
            "+" + e.getDigitsWithoutInternationalPrefix(),
            this.defaultCountry,
            this.defaultCallingCode,
            this.metadata.metadata,
          ),
          a = n.countryCallingCode,
          i = n.number;
        if (a) {
          return e.setCallingCode(a),
            e.update({ nationalSignificantNumber: i }),
            !0;
        }
      },
    }, {
      key: "reset",
      value: function (e) {
        if (e) {
          this.hasSelectedNumberingPlan = !0;
          var n = e._nationalPrefixForParsing();
          this.couldPossiblyExtractAnotherNationalSignificantNumber = n &&
            j0.test(n);
        } else {
          this.hasSelectedNumberingPlan = void 0,
            this.couldPossiblyExtractAnotherNationalSignificantNumber = void 0;
        }
      },
    }, {
      key: "extractNationalSignificantNumber",
      value: function (e, n) {
        if (!!this.hasSelectedNumberingPlan) {
          var a = W(e, this.metadata),
            i = a.nationalPrefix,
            d = a.nationalNumber,
            u = a.carrierCode;
          if (d !== e) return this.onExtractedNationalNumber(i, u, d, e, n), !0;
        }
      },
    }, {
      key: "extractAnotherNationalSignificantNumber",
      value: function (e, n, a) {
        if (!this.hasExtractedNationalSignificantNumber) {
          return this.extractNationalSignificantNumber(e, a);
        }
        if (!!this.couldPossiblyExtractAnotherNationalSignificantNumber) {
          var i = W(e, this.metadata),
            d = i.nationalPrefix,
            u = i.nationalNumber,
            o = i.carrierCode;
          if (u !== n) return this.onExtractedNationalNumber(d, o, u, e, a), !0;
        }
      },
    }, {
      key: "onExtractedNationalNumber",
      value: function (e, n, a, i, d) {
        var u, o, $ = i.lastIndexOf(a);
        if ($ >= 0 && $ === i.length - a.length) {
          o = !0;
          var f = i.slice(0, $);
          f !== e && (u = f);
        }
        d({
          nationalPrefix: e,
          carrierCode: n,
          nationalSignificantNumber: a,
          nationalSignificantNumberMatchesInput: o,
          complexPrefixBeforeNationalSignificantNumber: u,
        }),
          this.hasExtractedNationalSignificantNumber = !0,
          this.onNationalSignificantNumberChange();
      },
    }, {
      key: "reExtractNationalSignificantNumber",
      value: function (e) {
        if (
          this.extractAnotherNationalSignificantNumber(
            e.getNationalDigits(),
            e.nationalSignificantNumber,
            e.update,
          )
        ) {
          return !0;
        }
        if (this.extractIddPrefix(e)) {
          return this.extractCallingCodeAndNationalSignificantNumber(e), !0;
        }
        if (this.fixMissingPlus(e)) {
          return this.extractCallingCodeAndNationalSignificantNumber(e), !0;
        }
      },
    }, {
      key: "extractIddPrefix",
      value: function (e) {
        var n = e.international,
          a = e.IDDPrefix,
          i = e.digits,
          d = e.nationalSignificantNumber;
        if (!(n || a)) {
          var u = te(
            i,
            this.defaultCountry,
            this.defaultCallingCode,
            this.metadata.metadata,
          );
          if (u !== void 0 && u !== i) {
            return e.update({ IDDPrefix: i.slice(0, i.length - u.length) }),
              this.startInternationalNumber(e),
              !0;
          }
        }
      },
    }, {
      key: "fixMissingPlus",
      value: function (e) {
        if (!e.international) {
          var n = re(
              e.digits,
              this.defaultCountry,
              this.defaultCallingCode,
              this.metadata.metadata,
            ),
            a = n.countryCallingCode,
            i = n.number;
          if (a) {
            return e.update({ missingPlus: !0 }),
              this.startInternationalNumber(e),
              !0;
          }
        }
      },
    }, {
      key: "startInternationalNumber",
      value: function (e) {
        e.startInternationalNumber(),
          e.nationalSignificantNumber &&
          (e.resetNationalSignificantNumber(),
            this.onNationalSignificantNumberChange(),
            this.hasExtractedNationalSignificantNumber = void 0);
      },
    }, {
      key: "extractCallingCodeAndNationalSignificantNumber",
      value: function (e) {
        this.extractCountryCallingCode(e) &&
          this.extractNationalSignificantNumber(
            e.getNationalDigits(),
            e.update,
          );
      },
    }]),
      r;
  }();
function X0(r) {
  var t = r.search(W0);
  if (!(t < 0)) {
    r = r.slice(t);
    var e;
    return r[0] === "+" && (e = !0, r = r.slice("+".length)),
      r = r.replace(Y0, ""),
      e && (r = "+" + r),
      r;
  }
}
function Z0(r) {
  var t = X0(r) || "";
  return t[0] === "+" ? [t.slice("+".length), !0] : [t];
}
function z0(r) {
  var t = Z0(r), e = fr(t, 2), n = e[0], a = e[1];
  return H0.test(n) || (n = ""), [n, a];
}
function _e(r) {
  return typeof Symbol == "function" && typeof Symbol.iterator == "symbol"
    ? _e = function (e) {
      return typeof e;
    }
    : _e = function (e) {
      return e && typeof Symbol == "function" && e.constructor === Symbol &&
          e !== Symbol.prototype
        ? "symbol"
        : typeof e;
    },
    _e(r);
}
function K0(r, t) {
  return q0(r) || Q0(r, t) || J0();
}
function J0() {
  throw new TypeError("Invalid attempt to destructure non-iterable instance");
}
function Q0(r, t) {
  var e = [], n = !0, a = !1, i = void 0;
  try {
    for (
      var d = r[Symbol.iterator](), u;
      !(n = (u = d.next()).done) && (e.push(u.value), !(t && e.length === t));
      n = !0
    );
  } catch (o) {
    a = !0, i = o;
  } finally {
    try {
      !n && d.return != null && d.return();
    } finally {
      if (a) throw i;
    }
  }
  return e;
}
function q0(r) {
  if (Array.isArray(r)) return r;
}
function ea(r, t) {
  if (!(r instanceof t)) {
    throw new TypeError("Cannot call a class as a function");
  }
}
function hr(r, t) {
  for (var e = 0; e < t.length; e++) {
    var n = t[e];
    n.enumerable = n.enumerable || !1,
      n.configurable = !0,
      "value" in n && (n.writable = !0),
      Object.defineProperty(r, n.key, n);
  }
}
function ta(r, t, e) {
  return t && hr(r.prototype, t), e && hr(r, e), r;
}
var gr = !1,
  U = function () {
    function r(t, e) {
      ea(this, r), this.metadata = new m(e);
      var n = this.getCountryAndCallingCode(t),
        a = K0(n, 2),
        i = a[0],
        d = a[1];
      this.defaultCountry = i, this.defaultCallingCode = d, this.reset();
    }
    return ta(r, [{
      key: "getCountryAndCallingCode",
      value: function (e) {
        var n, a;
        return e && (_e(e) === "object"
          ? (n = e.defaultCountry, a = e.defaultCallingCode)
          : n = e),
          n && !this.metadata.hasCountry(n) && (n = void 0),
          a && gr && this.metadata.isNonGeographicCallingCode(a) && (n = "001"),
          [n, a];
      },
    }, {
      key: "input",
      value: function (e) {
        var n = this.parser.input(e, this.state),
          a = n.digits,
          i = n.justLeadingPlus;
        if (i) this.formattedOutput = "+";
        else if (a) {
          this.determineTheCountryIfNeeded(),
            this.state.nationalSignificantNumber &&
            this.formatter.narrowDownMatchingFormats(this.state);
          var d;
          if (
            this.metadata.hasSelectedNumberingPlan() &&
            (d = this.formatter.format(a, this.state)),
              d === void 0 &&
              this.parser.reExtractNationalSignificantNumber(this.state)
          ) {
            this.determineTheCountryIfNeeded();
            var u = this.state.getNationalDigits();
            u && (d = this.formatter.format(u, this.state));
          }
          this.formattedOutput = d
            ? this.getFullNumber(d)
            : this.getNonFormattedNumber();
        }
        return this.formattedOutput;
      },
    }, {
      key: "reset",
      value: function () {
        var e = this;
        return this.state = new ar({
          onCountryChange: function (a) {
            e.country = a;
          },
          onCallingCodeChange: function (a, i) {
            e.metadata.selectNumberingPlan(a, i),
              e.formatter.reset(e.metadata.numberingPlan, e.state),
              e.parser.reset(e.metadata.numberingPlan);
          },
        }),
          this.formatter = new sr({
            state: this.state,
            metadata: this.metadata,
          }),
          this.parser = new cr({
            defaultCountry: this.defaultCountry,
            defaultCallingCode: this.defaultCallingCode,
            metadata: this.metadata,
            state: this.state,
            onNationalSignificantNumberChange: function () {
              e.determineTheCountryIfNeeded(),
                e.formatter.reset(e.metadata.numberingPlan, e.state);
            },
          }),
          this.state.reset(this.defaultCountry, this.defaultCallingCode),
          this.formattedOutput = "",
          this;
      },
    }, {
      key: "isInternational",
      value: function () {
        return this.state.international;
      },
    }, {
      key: "getCallingCode",
      value: function () {
        return this.state.callingCode;
      },
    }, {
      key: "getCountryCallingCode",
      value: function () {
        return this.getCallingCode();
      },
    }, {
      key: "getCountry",
      value: function () {
        var e = this.state, n = e.digits, a = e.country;
        if (!!n) {
          var i = a;
          return gr && i === "001" && (i = void 0), i;
        }
      },
    }, {
      key: "determineTheCountryIfNeeded",
      value: function () {
        (!this.state.country || this.isCountryCallingCodeAmbiguous()) &&
          this.determineTheCountry();
      },
    }, {
      key: "getFullNumber",
      value: function (e) {
        var n = this;
        if (this.isInternational()) {
          var a = function (u) {
              return n.formatter.getInternationalPrefixBeforeCountryCallingCode(
                n.state,
                { spacing: !!u },
              ) + u;
            },
            i = this.state.callingCode;
          return a(
            i
              ? e
                ? "".concat(i, " ").concat(e)
                : i
              : "".concat(this.state.getDigitsWithoutInternationalPrefix()),
          );
        }
        return e;
      },
    }, {
      key: "getNonFormattedNationalNumberWithPrefix",
      value: function () {
        var e = this.state,
          n = e.nationalSignificantNumber,
          a = e.complexPrefixBeforeNationalSignificantNumber,
          i = e.nationalPrefix,
          d = n,
          u = a || i;
        return u && (d = u + d), d;
      },
    }, {
      key: "getNonFormattedNumber",
      value: function () {
        var e = this.state.nationalSignificantNumberMatchesInput;
        return this.getFullNumber(
          e
            ? this.getNonFormattedNationalNumberWithPrefix()
            : this.state.getNationalDigits(),
        );
      },
    }, {
      key: "getNonFormattedTemplate",
      value: function () {
        var e = this.getNonFormattedNumber();
        if (e) return e.replace(/[\+\d]/g, A);
      },
    }, {
      key: "isCountryCallingCodeAmbiguous",
      value: function () {
        var e = this.state.callingCode,
          n = this.metadata.getCountryCodesForCallingCode(e);
        return n && n.length > 1;
      },
    }, {
      key: "determineTheCountry",
      value: function () {
        this.state.setCountry(ae(
          this.isInternational()
            ? this.state.callingCode
            : this.defaultCallingCode,
          this.state.nationalSignificantNumber,
          this.metadata,
        ));
      },
    }, {
      key: "getNumber",
      value: function () {
        var e = this.state, n = e.nationalSignificantNumber, a = e.carrierCode;
        if (this.isInternational()) if (!this.state.callingCode) return;
        else if (!this.state.country && !this.defaultCallingCode) return;
        if (!!n) {
          var i = this.getCountry(),
            d = this.getCountryCallingCode() || this.defaultCallingCode,
            u = new B(i || d, n, this.metadata.metadata);
          return a && (u.carrierCode = a), u;
        }
      },
    }, {
      key: "isPossible",
      value: function () {
        var e = this.getNumber();
        return e ? e.isPossible() : !1;
      },
    }, {
      key: "isValid",
      value: function () {
        var e = this.getNumber();
        return e ? e.isValid() : !1;
      },
    }, {
      key: "getNationalNumber",
      value: function () {
        return this.state.nationalSignificantNumber;
      },
    }, {
      key: "getChars",
      value: function () {
        return (this.state.international ? "+" : "") + this.state.digits;
      },
    }, {
      key: "getTemplate",
      value: function () {
        return this.formatter.getTemplate(this.state) ||
          this.getNonFormattedTemplate() || "";
      },
    }]),
      r;
  }();
function Be(r) {
  return new m(r).getCountries();
}
function Re(r, t, e) {
  if (t[r]) return new B(r, t[r], e);
}
function Oe(r, t, e) {
  return e || (e = t, t = void 0), new U(t, e).input(r);
}
function pr() {
  return s(de, arguments);
}
function Nr() {
  return s(ue, arguments);
}
function ra() {
  return s(xe, arguments);
}
function na() {
  return s(ve, arguments);
}
function aa() {
  return s(j, arguments);
}
function ia() {
  return s(X, arguments);
}
function da() {
  return s(Te, arguments);
}
function ua() {
  return s(Ie, arguments);
}
function we(r, t) {
  return R.call(this, r, t, S);
}
we.prototype = Object.create(R.prototype, {});
we.prototype.constructor = we;
function Le(r) {
  return U.call(this, r, S);
}
Le.prototype = Object.create(U.prototype, {});
Le.prototype.constructor = Le;
function oa() {
  return s(L, arguments);
}
function $a() {
  return s(Be, arguments);
}
function Cr() {
  return s(y, arguments);
}
function la() {
  return s(Je, arguments);
}
function Me() {
  return m.call(this, S);
}
Me.prototype = Object.create(m.prototype, {});
Me.prototype.constructor = Me;
function sa() {
  return s(Re, arguments);
}
function fa() {
  return s(Oe, arguments);
}
function ke() {
  var r = C(arguments), t = r.text, e = r.options, n = r.metadata;
  return g(t, e, n);
}
function Ar() {
  return s(ke, arguments);
}
function Ge(r) {
  return typeof Symbol == "function" && typeof Symbol.iterator == "symbol"
    ? Ge = function (e) {
      return typeof e;
    }
    : Ge = function (e) {
      return e && typeof Symbol == "function" && e.constructor === Symbol &&
          e !== Symbol.prototype
        ? "symbol"
        : typeof e;
    },
    Ge(r);
}
function ma(r, t) {
  return ga(r) || ha(r, t) || ca();
}
function ca() {
  throw new TypeError("Invalid attempt to destructure non-iterable instance");
}
function ha(r, t) {
  var e = [], n = !0, a = !1, i = void 0;
  try {
    for (
      var d = r[Symbol.iterator](), u;
      !(n = (u = d.next()).done) && (e.push(u.value), !(t && e.length === t));
      n = !0
    );
  } catch (o) {
    a = !0, i = o;
  } finally {
    try {
      !n && d.return != null && d.return();
    } finally {
      if (a) throw i;
    }
  }
  return e;
}
function ga(r) {
  if (Array.isArray(r)) return r;
}
function Ue() {
  var r = pa(arguments),
    t = r.input,
    e = r.format,
    n = r.options,
    a = r.metadata;
  return ee(t, e, n, a);
}
function pa(r) {
  var t = Array.prototype.slice.call(r),
    e = ma(t, 5),
    n = e[0],
    a = e[1],
    i = e[2],
    d = e[3],
    u = e[4],
    o,
    $,
    f,
    l;
  if (typeof n == "string") {
    if (typeof i == "string") {
      $ = i,
        u ? (f = d, l = u) : l = d,
        o = g(n, { defaultCountry: a, extended: !0 }, l);
    } else {
      if (typeof a != "string") {
        throw new Error(
          "`format` argument not passed to `formatNumber(number, format)`",
        );
      }
      $ = a, d ? (f = i, l = d) : l = i, o = g(n, { extended: !0 }, l);
    }
  } else if (Na(n)) o = n, $ = a, d ? (f = i, l = d) : l = i;
  else {
    throw new TypeError(
      "A phone number must either be a string or an object of shape { phone, [country] }.",
    );
  }
  return $ === "International"
    ? $ = "INTERNATIONAL"
    : $ === "National" && ($ = "NATIONAL"),
    { input: o, format: $, options: f, metadata: l };
}
var Na = function (t) {
  return Ge(t) === "object";
};
function br() {
  return s(Ue, arguments);
}
function me(r) {
  return typeof Symbol == "function" && typeof Symbol.iterator == "symbol"
    ? me = function (e) {
      return typeof e;
    }
    : me = function (e) {
      return e && typeof Symbol == "function" && e.constructor === Symbol &&
          e !== Symbol.prototype
        ? "symbol"
        : typeof e;
    },
    me(r);
}
function Ca(r, t) {
  return ya(r) || ba(r, t) || Aa();
}
function Aa() {
  throw new TypeError("Invalid attempt to destructure non-iterable instance");
}
function ba(r, t) {
  var e = [], n = !0, a = !1, i = void 0;
  try {
    for (
      var d = r[Symbol.iterator](), u;
      !(n = (u = d.next()).done) && (e.push(u.value), !(t && e.length === t));
      n = !0
    );
  } catch (o) {
    a = !0, i = o;
  } finally {
    try {
      !n && d.return != null && d.return();
    } finally {
      if (a) throw i;
    }
  }
  return e;
}
function ya(r) {
  if (Array.isArray(r)) return r;
}
function Ve() {
  var r = ce(arguments), t = r.input, e = r.options, n = r.metadata;
  return I(t, e, n);
}
function ce(r) {
  var t = Array.prototype.slice.call(r),
    e = Ca(t, 4),
    n = e[0],
    a = e[1],
    i = e[2],
    d = e[3],
    u,
    o = {},
    $;
  if (typeof n == "string") {
    me(a) !== "object"
      ? (d ? (o = i, $ = d) : $ = i,
        F(n) ? u = g(n, { defaultCountry: a }, $) : u = {})
      : (i ? (o = a, $ = i) : $ = a, F(n) ? u = g(n, void 0, $) : u = {});
  } else if (xa(n)) u = n, i ? (o = a, $ = i) : $ = a;
  else {
    throw new TypeError(
      "A phone number must either be a string or an object of shape { phone, [country] }.",
    );
  }
  return { input: u, options: o, metadata: $ };
}
var xa = function (t) {
  return me(t) === "object";
};
function va() {
  return s(Ve, arguments);
}
function bt() {
  var r = ce(arguments), t = r.input, e = r.options, n = r.metadata;
  return J(t, e, n);
}
function Pa() {
  return s(bt, arguments);
}
function He() {
  var r = ce(arguments), t = r.input, e = r.options, n = r.metadata;
  return P(t, e, n);
}
function Fa() {
  return s(He, arguments);
}
function yt(r, t, e) {
  if (typeof r != "string") throw new TypeError("number must be a string");
  if (typeof t != "string") throw new TypeError("country must be a string");
  var n;
  return F(r) ? n = g(r, { defaultCountry: t }, e) : n = {},
    it(n, t, void 0, e);
}
function Ea() {
  return s(yt, arguments);
}
function Da(r, t) {
  if (!(r instanceof t)) {
    throw new TypeError("Cannot call a class as a function");
  }
}
function yr(r, t) {
  for (var e = 0; e < t.length; e++) {
    var n = t[e];
    n.enumerable = n.enumerable || !1,
      n.configurable = !0,
      "value" in n && (n.writable = !0),
      Object.defineProperty(r, n.key, n);
  }
}
function Ta(r, t, e) {
  return t && yr(r.prototype, t), e && yr(r, e), r;
}
function xr(r, t, e) {
  return t in r
    ? Object.defineProperty(r, t, {
      value: e,
      enumerable: !0,
      configurable: !0,
      writable: !0,
    })
    : r[t] = e,
    r;
}
var No = D("parsing"),
  Ia = new RegExp("^[" + Xe + "]+"),
  Sa = new RegExp("[" + h + "]+$");
function xt(r, t, e) {
  t === void 0 && (t = {});
  for (var n = new Z(r, t, e), a = []; n.hasNext();) a.push(n.next());
  return a;
}
function vr(r, t, e) {
  t === void 0 && (t = {});
  var n = new Z(r, t, e);
  return xr({}, Symbol.iterator, function () {
    return {
      next: function () {
        return n.hasNext() ? { done: !1, value: n.next() } : { done: !0 };
      },
    };
  });
}
var Z = function () {
  function r(t, e, n) {
    Da(this, r),
      xr(this, "state", "NOT_READY"),
      this.text = t,
      this.options = e || {},
      this.metadata = n,
      this.regexp = new RegExp(Qe, "ig");
  }
  return Ta(r, [{
    key: "find",
    value: function () {
      var e = this.regexp.exec(this.text);
      if (!!e) {
        var n = e[0], a = e.index;
        n = n.replace(Ia, ""),
          a += e[0].length - n.length,
          n = n.replace(Sa, ""),
          n = $e(n);
        var i = this.parseCandidate(n, a);
        return i || this.find();
      }
    },
  }, {
    key: "parseCandidate",
    value: function (e, n) {
      if (
        !!le(e, n, this.text) &&
        !!se(e, n, this.text, this.options.extended ? "POSSIBLE" : "VALID")
      ) {
        var a = g(e, this.options, this.metadata);
        if (!!a.phone) return a.startsAt = n, a.endsAt = n + e.length, a;
      }
    },
  }, {
    key: "hasNext",
    value: function () {
      return this.state === "NOT_READY" &&
        (this.last_match = this.find(),
          this.last_match ? this.state = "READY" : this.state = "DONE"),
        this.state === "READY";
    },
  }, {
    key: "next",
    value: function () {
      if (!this.hasNext()) throw new Error("No next element");
      var e = this.last_match;
      return this.last_match = null, this.state = "NOT_READY", e;
    },
  }]),
    r;
}();
function We() {
  var r = C(arguments), t = r.text, e = r.options, n = r.metadata;
  return xt(t, e, n);
}
function vt() {
  var r = C(arguments), t = r.text, e = r.options, n = r.metadata;
  return vr(t, e, n);
}
function _a() {
  return s(We, arguments);
}
function Ba() {
  return s(vt, arguments);
}
function Ye(r, t) {
  Z.call(this, r, t, S);
}
Ye.prototype = Object.create(Z.prototype, {});
Ye.prototype.constructor = Ye;
export {
  $a as getCountries,
  _a as findPhoneNumbers,
  A as DIGIT_PLACEHOLDER,
  aa as findNumbers,
  Ae as formatRFC3966,
  Ar as parse,
  Ar as parseNumber,
  b as ParseError,
  Ba as searchPhoneNumbers,
  br as format,
  br as formatNumber,
  Ce as parseRFC3966,
  Cr as getCountryCallingCode,
  Cr as getPhoneCode,
  da as findPhoneNumbersInText,
  Ea as isValidNumberForRegion,
  Fa as isValidNumber,
  fa as formatIncompletePhoneNumber,
  H as parseIncompletePhoneNumber,
  He as isValidNumberCustom,
  ia as searchNumbers,
  It as DIGITS,
  ke as parseCustom,
  la as getExtPrefix,
  Le as AsYouType,
  Me as Metadata,
  na as isPossiblePhoneNumber,
  Nr as default,
  Nr as parsePhoneNumberFromString,
  oa as isSupportedCountry,
  Pa as isPossibleNumber,
  pr as parsePhoneNumber,
  pr as parsePhoneNumberWithError,
  ra as isValidPhoneNumber,
  sa as getExampleNumber,
  tt as parsePhoneNumberCharacter,
  U as AsYouTypeCustom,
  ua as searchPhoneNumbersInText,
  Ue as formatCustom,
  va as getNumberType,
  Ve as getNumberTypeCustom,
  vt as searchPhoneNumbersCustom,
  We as findPhoneNumbersCustom,
  we as PhoneNumberMatcher,
  x as parseDigits,
  y as getCountryCallingCodeCustom,
  y as getPhoneCodeCustom,
  Ye as PhoneNumberSearch,
  Z as PhoneNumberSearchCustom,
};
